Build Help Tutorial

Contents
Index
   Build Tutorial Chapters
   Introduction
   Definition: SectorEffectors
   Definition: MasterSwitch Sprite
   Definition: Touchplate Sprite
   Definition: Grid Locking
   Definition: Locator Sprite
   Definition: MusicAndSFX Sprite
   Definition: Activator Sprite
   Definition: Angle of a Sprite
   Definition: Shade Value
   Definition: GPSpeed Sprite
   Definition: Vertices
   Definition: Parallaxed Floors or Ceilings
   Tutorial: Cameras
   Tutorial: Conveyor Belts
   Tutorial: Pig Cop Recon Cars
   Tutorial: C-9 Crack Explosions
   Tutorial: Copying Sectors
   Tutorial: Doors that Open Via a Switch
   Tutorial: Floor, Ceiling, and Split Doors
   Tutorial: Elevator Transport
   Tutorial: Earthquakes
   Tutorial: Glass Walls
   Tutorial: LightSwitches
   Tutorial: Mirrors
   Tutorial: Platform Elevators
   Tutorial: Random Lights After Shot Out
   Tutorial: Rotating Sectors
   Tutorial: Sliding Doors
   Tutorial: Sectors Over Sectors
   Tutorial: Star Trek Doors (Split and Normal)
   Tutorial: Subways
   Tutorial: Swinging Doors
   Tutorial: Teleporters
   Tutorial: Up Open Door Lights
   Tutorial: Water Sectors
   Tutorial: Two-Way Trains
   Tutorial: Bridges
   Tutorial: Cranes
   Tutorial: Lightning
   Tutorial: Incremental Sector Raise/Fall
   Build Dox: Build and Editart Keys
   Sector Effector Reference Guide
   Special Sprite Reference Guide
   Sector Tag Reference Guide
   Tricks And Goodies
   EditArt Basics
   Tutorial Pages
   Sound Listing
   Q & A
   Legal Thingy





       Build Tutorial


Welcome to the ultimate Build Tutorial.


A basic introduction into the Build Editor, and what you can expect from these pages



Legal stuff



An expansive collection of tutorials leading you through the more complex tasks of Building levels.  Tons of Build screen shots, and clear step-by-step instructions.



The complete Sector Effector Reference Guide, taken right out of Buildhlp, with a few corrections and additions.  Contains links to tutorial pages.



The complete Sector Tag Reference Guide, taken right out of Buildhlp, with a few corrections and additions.  Contains links to tutorial pages.



The complete Special Sprite Reference Guide, taken right out of Buildhlp, with a few corrections and key additions.  Contains links to tutorial pages.



A nearly complete listing of the keyboard commands used in Build.  Contains many that are not documented.  Original doc came from Buildhlp.



Little quirks about Build and helpful hints.



Common Questions and Answers.  First place to look before sending e-mail.



A complete listing of the Duke sounds.


Top



Introduction


Hello, and welcome to my Duke3D tutorial.  When I first installed the shareware version of Duke and played the eight levels,  I was astonished at the level of detail put into each level and the truly revolutionary things that were being done to the 3D first-person gaming genre.  To my great pleasure, I read in gaming magazines and the closing screen shots of Duke about the free level editor they were going to be shipping with the registered version and the commercial CD.


  Within days of its release, I ran out and purchased the game and immediately began playing with the editor;  here on out referred to as Build. Unlike most other editors I've used with games such as Doom, this was a complete breakthrough in ease of use.  Setting textures, sprites, & ceiling/floor heights was so easy I had to pinch myself to make sure I wasn't dreaming.  Many kudos to the programming prowess of Ken Silverman, the brain behind the 3D engine used in Duke and the creator of this Build program.


  Life isn't always perfect, I've found, and my early euphoria turned into frustration as I meddled with the editor and help files included with it.  I couldn't manage to figure anything out those first few days, and the help files were much less than that.  The program BuildHLP, which is included with the whole Build tools set, is good for laying out the basic details of level design; making sectors, splitting them, joining them, inserting sprites, and the like.  What they failed to include was how to create the more advanced features; sliding doors, rotating sectors, subways, etc.  They listed out the different Sector Effectors and what they did, but nothing as far as how to implement them, or how the sectors should be laid out.


  I'm assuming in all of my tutorial pages that you've read the BuildHLP  files and know how to make sectors, set ceiling/floor heights, insert sprites, change sprite tiles to Sector Effectors, and the common Build tasks.  In certain places, I've pointed out how to accomplish a certain task in case it wasn't mentioned in the help files, or if the help files were simply wrong.  The most frustrating error I came across early was how to make a sector within another sector.  The help files say to hit ALT-Insert on the inner sector.  This key combination duplicates sprites, unrelated to sectors.  The real combination is ALT-S.

                                                                      

  I decided early on in my quest to solve these puzzles that no one should have to struggle through making interesting and challenging levels for this awesome game.  I spent many nights taking apart other levels to see how they, the level lords at 3DRealms, made their trick levels.  Even then, the levels were so intricately laid out it was hard to discern the multitude of sprites overflowing my screen.  And then I found the perfect maps.  In the Build directory of your CD, there are two maps included with the editor.  They are _SE.MAP and _ST.MAP.  These two maps include every possible thing you can do with sectors.  I tore them apart like a dog with a rag doll.  Now everything seemed to fall into place.


   There are many little tricks you need to know in order to make your levels appear seamless, and natural.  What looks like a single line on a sample map may in fact be two, three, or even more lines layered on top of each other.  The Build program is half 2D and half 3D.  The 2D half can get quite confusing when sectors are layered over sectors (a very crucial effect when planning multi-floored levels.)  Unfortunately, we can't spend all of our time in 3d mode.


   Before you begin your very rewarding and challenging quest to make the ultimate levels, please heed some advice.  Save your work often.  On my 486 at home, the Build program frequently dumps me entirely from the editor when switching between 2D and 3D mode, taking with it the changes to my level I just spent twenty minutes on.  I've gotten so used to it now that I simply save my work before I even switch over to 3D mode.  If you have a relatively slower box, like a 486, I recommend highly that you save your work frequently.  Make numerous backups of your level, ie naming copies like mylevel1.map", "mylevel2.map" so that you have some history as your level progresses.  If something goes terribly wrong, you have the last stage still on hand to revert to.


Acknowledgments:


  I'd like to thank the following people for assisting me in level design, page layouts, and neat little tricks:   Don Rogers, & John "Kasai" Leonard.



Contributing Authors:


  The following people have contributed to the tutorial:  Jean-Francois Groleau (jfgrol@ ) and Adam Ashley (adam_ashley@ ).   Our goal is to make the best tutorial available; many thanks go to them for their excellent work.



  If you've come across a neat effect, find an error in my page(s), have a suggestion for the layout, wrote a description on how to do something not listed here, or any undocumented information at all to do with the Build level editor, please send me a note, at  ty@ . I'll include your name here under acknowledgments and on any page I've created discussing your findings.  I've still got some topics untouched right at the moment; I simply haven't had enough time to write out the tutorial.  I look forward to hearing from people as they come across neat tricks and little caveats, so that we can share with the rest of the level makers out there. If you've found these pages useful, or informative, I'd love to hear about that too.<g>


Good luck, and happy level-editing :)


Ty Matthews



If you feel compelled to send me funds for all this hard work <g>:


       Ty Matthews






Top




Definition: SectorEffectors

Sector Effectors are used to create game effects and manipulate Sector Attributes.  The SE is the main tool to create effects such as Earthquakes, Explosions, and Lighting Effects.  SE are tile #1.



Top




Definition: MasterSwitch Sprite

The MasterSwitch sprite is used to activate a Sector Lotag or a Sector Effector sprite after a time delay.  This can only be activated by a Touchplate sprite.  Set the hitag to the appropriate time delay.  Tile #8.



Top




Definition: Touchplate Sprite

The Touchplate sprite will activate an Activator or a MasterSwitch sprite when the player walks on the sector floor.  Tile #3.



Top





Use [L] to toggle grid-locking on/off.  The crosshair is red when grid-locking is on, white when off.


Top


 




Definition: Locator Sprites

Locator sprites are used to define a track for a Subway or to define a path for PigCop Recon Cars, but not both in the same map.  You can only have one path in a map.  Tile #6.



Top




Definition: MusicAndSFX Sprite

MusicAndSFX sprites can be used in 3 ways: 


  1.  Activation sound

  2.  Ambiente Sound

  3.  Echo Effect


See the Special Sprite Reference Guide for more details.  Tile #5.



Top




Definition: Activator Sprite

Activator sprites are used with Switches or the Touchplate sprite to activate the Sector Lotag function or any Sector Effectors within the Sector.  Tile #2



Top



To set the angle of a sprite, use the [<] and [>] keys in either 2d or 3d mode.


Top



To set the shade value, point at the sprite in 3d mode and use the [-] and [+] keys.  Alternately, you can hit ['] - [S] to enter a specific number.


Top


 




Definition: GPSpeed Sprite

The GPSpeed Sprite is used to define the rate of movement for such things as Doors, Rotating Sectors, etc.   Tile #10.



Top



Vertices are the points at which sector lines are drawn.  They are automatically inserted when creating a sector.  To insert a vertice on an existing line, use [INSERT] in 2d mode.  To delete a vertice, drag it onto a vertice that shares the same line.


Top



To set parallaxed floors or ceilings, point at the tile in 3d mode and hit [P].


Top



Cameras


   Start out making a single room, with a 3x1 unit window and window sill.




   Insert two sprites, a viewscreen sprite (tile #502) and a camera sprite (tile #621.)  Put the viewscreen sprite flat against the window's wall.  Put the camera in one corner, and raise it to the ceiling.  Change the viewscreen's hitag to 1, and set the camera's lotag to 1.  The viewscreen will show all cameras whose lotags match its hitag.  Set the camera angle to point towards the middle of the room.  Set the camera's hitag to 256.  This will be our camera's turning radius; see the notes the bottom for an explanation.




   That's all you need to make the camera work, but we want to make a fancier security screen.  We made a separate window sill earlier, and now it's going to come into play.  Change the height of the sector containing your viewscreen so you can see the  window sill "step."  While pointing at this step in 3d mode, hit [M] to make it a maskwall.  A tile will fill the space between the floor and ceiling.  Point at this "wall" and change its tile to a forcefield (tile #663).  While still pointing at the wall, hit [B] and then 'H' to make it blocking and masking, respectively.  Switch back to 2d mode, turn off grid-lock, and move the window sill corners and window corners right up next to the wall.  Switch back to 3d mode and adjust the window sill height to match that of the window.  Now you've got a nice-looking screen that is recessed into the wall.  Switch to 2d mode finally, and make the window sill blocking using the [B] key to prevent Duke from getting hurt when he views the security screen.


      


 


   Now you probably want to change the angle the camera points to... up or down.  The angle of the camera is determined by the shade value of the sprite itself.  The shade value of any sprite is between -128 and +127. The positive shade values will force the camera to point upwards, as high as 127 degrees.  The negative shade values will force the camera to point downwards, as low as 128 degrees.  To set the shade of our camera, switch to 3d mode, point at the sprite, hold down the ['] key, and hit [S]


   There's a little catch with entering negative numbers within Build. It just won't allow you to enter them if the negative sign isn't already there.  To set the negative values, you have to enter positive values greater than 127.  If you enter 128, the shade (which becomes the angle in our case) suddenly is equal to -128.  You can go as high as 255, which is -1.  So, to sum up, to have the camera point downwards, subtract the desired angle from 256, and enter that positive value. 


   Please note that the pan angle of travel of the camera is, as stated above, set by the camera's hitag value. These values span from 0 (for a fixed camera,) to 2048 (a complete 360 degree turn.)  It is also important to remember that this value represents the angle panned on either side of the pointing angle of the sprite. So if you assign it a value of 512 (1/4 of 2048), for example, it will describe an arc of 90 degrees on the left and right side of the camera's axis for a total arc of 180 degrees. Although the use of exact divisions of 2048 is not absolutely necessary, it guarantees trouble-free operation. Small uneven values like 90 tend to make the cameras operate erratically. Experiment and see what works best for you.


Top



Conveyor Belts


Start out making two sectors, one inside the other, and fairly long. Switch to 3d mode and raise the floor height of the inner-island sector above the outer sector.





Insert a SectorEffector within the island sector.  Change the SE lotag to 24.  Change the angle of the SE-24 to the direction you want the belt to move.  Switch over to 3d mode and make the floor of the inner sector Relatively Aligned.  To set the Relative Alignment, point the crosshair at the floor tile and hit [R].





You can set the hitag equal to a switches' lotag to turn the conveyor belt on and off.  Just set the lotag to some unique switch number and set the hitag of your SE-24 to the same number.


       


Top


 



Pig Cop Recon Cars


Make one large sector that will be our outside area. 



Place 9 Locator Sprites within our large sector.  Place for now a single Recon Monster Sprite (tile #1960) in the mix as well.  Arrange the Locators in a circle and change their lotags in numerical sequence starting from 0 (which won't require a change) up to 8, making sure not to skip any

digit.  The Recon cars will cross each Locator in sequence.  This is very similar to Subways.  Recon cars cannot, however, stop at any given point.  They stop on their own during the game.  Take and move the Locators out to the edges of your sector in an oval pattern.



The Recon car hitag should be set to the first locator lotag that it will cross.  In this case, our Recon car is right next to the first locator, or locator #0, thus requiring no change to the tags.  You can have as many Recon cars as you like in the game; just note that sometimes two cars will stop to shoot at you and may then occupy the same space, following each other around.  Switch to 3d mode and move our Recon car up in the air.  Clicking and holding the left mouse button on the sprite really helps here.  Move all of the Locator sprites to the air as well, mixing up the altitude to give the cars some up and down motion.



Top



C-9 Crack Explosions


Make one sector about 10x7 in size.  Insert two vertices on the top line and draw another sector right above our first sector.  Insert another two vertices, this time in the middle of the top two lines (we're going to split the top sector.)   Split the top sector by drawing a line between the two points you just inserted.  Your map should look like this picture. It's crucial that you split the top sector and not try to make each half separately.  I've found doing the latter causes weird problems.



Insert two Sector Effectors, one in each half of the top sector.  Change the SE lotags to 13.  Change the two SE hitags to 1, or any unused SE-13 number.  Insert four sprites, two in each sector, and change the sprite tile to SeeNine (get it? C-9? :).  The SeeNine sprite is tile number 1247.  Change all four SeeNine hitags to 1, or the number you assigned to the SE-13.  The SeeNine lotag is set to the amount of time delay you want the explosions to occur after you've hit the crack with an explosion of its own.  Here, I've spread the time delay around, making values 20, 40, 60, and 80 so that the explosion will appear to travel across the two sectors.



Switch over to 3d mode and insert a sprite on the wall above the two sectors.  I've also set tiles and floor/ceiling heights/slopes to something that resembles a gaping hole in a wall after an explosion.  Set the sprite's tile to tile number 546 (crack).  Move the crack down (pgup/pgdn on the sprite) so that it floats in mid-air, positioned in the middle of the hole.  The crack can be anywhere at all in the game, but we want it to be fairly close to where the explosion will occur.  When the game is run, this crack will appear against a solid wall.  The solid wall is created by the SE-13, which tells the game to put both ceiling and floor at the same height at the start of the level.  Switch back over to 2d mode and set the crack's hitag to 1, or the number you have been assigning to the SE-13 hitag. 



When an explosion hits this crack, the sectors will move to the positions they had in Build, and the C-9 explosives will burst in sequence.  You can make only the ceiling or floor match the height of the SE sprite by changing the angle of the SE-13 to pointing down.  By default the angle points up, which makes the game put both ceiling and floor at the same height/slope, so that our hole will not  exist.



The hole does not have to be caused only by a crack. To have another "exploding" sprite (ie other C-9s or the Fire Extinguisher Sprite) cause the hole to explode, set the sprite's hitag to the same number you gave the SE-13 hitag.



You can have the hole explode when Duke walks across the floor, as well. Insert a Touchplate sprite in any sector which Duke will walk across.  Set the Touchplate's lotag to the same number you gave the SE-13 hitag.





Top



Copying Sectors


Start out making two separate sectors.  In the left-most sector, create a little circular sector that is valid player space; this will be your source sector.  In the right-most sector, create a void-space area that is larger than the circular sector in your source sector.



Now make a copy of the small circular sector.  Do this by pointing your mouse crosshair a little bit above and to the left of the circular sector and pressing [right-alt].  Keep the right-alt button down, and drag your mouse down and across the circular sector.  You'll see a green-bordered box form.  Once you've totally enclosed the circular sector within the green box, let go of the right-alt button.  Now that entire sector will begin to flash green.  Point your mouse crosshair anywhere in the middle of the highlighted sector.  Be careful in the next few steps and avoid moving the sector.  While holding the mouse in a constant position, press and hold the left-mouse button.


What we've done here is highlight the sector and any sprites within it for moving.  But there's a handy tool built into the Build engine, and that's the ability to copy.  While keeping the left-mouse button down and not moving the sector at all, press insert once, but do not let go of the left-mouse button.  Be sure the sector lines up with its original coordinates.  If you play around with this at all on a test map, you'll see as you move that sector out before pressing insert, white lines will replace the original red ones.  Don't worry if that happens to you, just move it back in place and you'll be fine.  Now that you've copied the sector into its original location (sounds weird, doesn't it,) you can safely move it around for placement elsewhere.  So we'll move it to our void-space area in the right-most sector. 


You can now do one of two things here.  Either a) drop the sector by letting go of the left-mouse button, or b) press insert again to make another copy.  We're only going to make a single copy, so let's drop the sector in that void space area.  Press the right-alt button again to disengage the highlight, and we've finished the move.



We must now meld that copied sector into its bigger, surrounding sector. This is what we created that void-space sector for.  If you tried to just plop down that copy in the middle of the existing sector, you'd get many, many strange effects, and probably lock the game.  It's a cardinal sin in Build to have one sector cross red lines with another, and the same holds true for copying sectors anyplace other than their origin.  You can take a copied sector and place it down in void space anywhere, so we're safe with our little void-island.  Begin drawing a new sector, starting with point number 1 in the following image.  Hit every point in sequence through 8, stopping back at 1.  It is imperative that each and every vertice & line of our copied sector is joined with the new sectors.  We're going to create two of them.


 



Create another new sector for the remaining void area.


 


All lines should now be red, indicating we've successfully removed any void space.  You probably don't want, and really don't need, those two temporary sectors we used to take up the void space.  Let's join them with the parent sector.  Point the mouse crosshair anywhere inside the biggest,

right-most sector.  Press [J] once.  Make sure you see at the bottom of your screen (in the action bar) the line reading "Join sector - press J again on sector to join with" before going any further.  If you don't see this, then it didn't register you hitting the [J] key.  Press 'J' on one of the two temporary sectors, and it will merge with the parent.  Follow the same procedure for the other temporary sector.



Notes on Joining sectors: Whichever sector you hit [J] on first will retain its floor/ceiling heights, shading, tiles, etc.  The other sector will lose all of those attributes, and basically disappear.  It's very upsetting to accidentally join a junk sector with a good sector.  You can only join sectors that share at minimum one red line, or if the sector is within another.  Avoid at all costs joining sectors that overlap other sectors.  If you point your crosshair in any area which could be two or more separate sectors and hit 'J', there's no way to tell which sector you've hit.  Pressing 'J' on the other sector may cause an underlying or overlying sector to be joined with a totally unattached sector.  This is deadly.  There is no way of backing out of this error without reloading your level.


Top



Doors that Open Via a Switch


Start out making three sectors as in the image.  The middle sector will be our door, and the other two simply rooms.





Insert a SectorEffector, Activator, and MusicAndSFX sprite within the middle, door sector.  Change the SectorEffector lotag to 32. Set the MusicAndSFX  lotag and hitag to 166, or whichever door sound you prefer.  Leave the Activator tags as is for now.





Switch to 3d mode and place a switch sprite on the wall.  It's easier to place sprites in 3d mode and make them fixated in a certain plane.  If you place a sprite in 2d mode, by default the sprite will follow you as you walk around it.  Obviously, this won't work for our switch.  You can press [R] on the sprite in 3d mode to fixate it, but if you insert the sprite in 3d mode while first pointing at the wall, it will start fixated :).  Change the switch lotag to a unique switch number (I'll use 1 in this case).  Give that same switch lotag number to the activator lotag.



 



Lower the ceiling of your door sector so that you can change the door tiles. We're not going to lower the ceiling of the door down to the floor, as the SE-32 sprite will allow us to start the sector ceiling at the same height of the SE sprite.  Change the angle of the SE-32 to point downwards, and make sure the sprite is all the way on the floor (use [CTRL]-[PgDn] in 3d mode to ensure this.)  With the SE-32 pointing downwards, the ceiling will start at the SE height.  It's much easier editing tiles, moving sprites, and the like if the door is open in Build :)





Top



Floor, Ceiling, and Split Doors


Start up Build and make two separate sectors, one sector (10 units per side for now) and the other right above it, its bottom wall running parallel to the top wall of the lower sector.  Insert two vertices 6 or 7 grid spaces apart on each of the walls of the two sectors.  Make another sector (basically joining your two sectors) using the four vertices you just inserted.  Your design should be close to the image shown.





While in 2d mode, point the mouse pointer inside the new "door" sector (the one sandwiched between the two bigger sectors) and insert a sprite.  Move the pointer over a little ways and insert another sprite.  It is critical that these sprites be inside that sector.  Switch over to 3d mode and change one of the sprites to a Sector Effector (SE), and the other to a MusicAndSndFX. Switch back to 2d mode and set the tags for the SE to 64 hitag, and 10 lotag.  The hitag is used for the length of time the door will stay open.  64 is about 2 seconds.  The lotag is for Door Auto Close.  Change the MusicAndSndFX sprite's lotag to 166, which is the Doom-like sound of a door opening.  Set the door sector's lotag to 20, which is for a ceiling door.  Finally, when all that is complete, switch back again to 3d mode and lower the door's ceiling all the way to its floor.  Just make sure you've picked the tiles you like first :)





To make the door come down from the ceiling, simply change the sector lotag from 20 to 21, and move the door sector's floor and ceiling to the surrounding sector's ceiling


To make the door split from the middle, simply change the sector lotag from 20 to 22, and move the door sector's floor and ceiling to the middle of the door.



Top


 



Elevator Transport


Start out making four sectors, two large ones of varying size, and two smaller ones (each attached to one of the bigger ones) which will become the actual elevator.  Each smaller sector must be exactly the same size.





Insert a Sector Effector within each of smaller sectors and change the SE lotags to 17, which is for an elevator.  Assign a unique elevator number and put that in both of the SE hitags.  Change both of the smaller sector lotags to 15.  Pick one of the two to be the higher floor, and change that sector hitag to 1.  Leave the other at 0.  It's a good idea to put the SE sprites on the same coordinates of both sectors; that way Duke won't shift when he goes up and down it.  Also make sure the SE sprites point in the same direction (same angle).





That's it for tags and such, now you must go into 3d mode and change the shades of the SEs, as well as the floor/ceiling heights of the two elevator sectors.  The two elevator cars must be built at physically separate heights.  The ceiling height of the lower floor must be lower than floor height of the upper floor, or it won't work.  You'll get in the elevator and either rise or fall for an eternity.  Put the white arrow in the lower sector and switch over to 3d mode.  The darker shaded SE-17 is the floor where the elevator will start.  I found this shade should be at least 32 shades dark.  To darken the SE, point at it in 3d mode, hold down the ['] key and hit [S].  Enter the number 32 and hit [ENTER]. 



  



Top



Earthquakes


Make one large sector, and place two island sectors within it.  Make one of the island sectors only a few units to a side, this will be the trigger platform.  Make the other island sector nearly as large as the outer sector.  Insert two vertices, one on both the top and bottom lines of the inner, larger sector.  Split that sector and make some jagged edges, like the picture.  This will be the sector our earthquake will happen to.





Switch over to 3d mode and change the floor slope of one of the jagged sectors so that it drops below the floor height of the surrounding sector.  You may have to change the wall alignment of that sector by pointing at the "pivot" wall and hitting ALT-F.  This will cause the slope of that sector to start

from that particular wall.





Insert a SE within the dropped-down sector.  Change that SE lotag to 2.  Insert a MasterSwitch sprite within that same sector.  Change the MasterSwitch lotag to 1, our unique earthquake number.  Insert a Touchplate sprite within the smaller island sector.  The earthquake will trigger when the player walks across this little sector.  Change the Touchplate lotag to 1 as well.  Turn off gridlockingand move both the SE-2 and MasterSwitch sprites close to the one of the jagged points, but not outside the sector.  Make sure the SE-2 and Masterswitch are on the floor by hitting CTRL-PgDn on them.  I've also put in three SE-33 sprites, which are used to spawn little bits of rock when the earthquake occurs.  Switch to 3d mode and move them to the ceiling by hitting CTRL-PgUp.



Top



Glass Walls



Start out making four sectors, like the image.  The two middle sectors will be our glass borders.





Change to 3d mode and raise the floor of the top-middle sector.





Press [M] on the lower "step" portion of the newly exposed wall (that ugly brown texture in the image above.)  This will fill the space between the floor and the ceiling with a single tile (so it's masked.)  Press [V] on that tile between the floor and ceiling, so that you can change the tile.  Press [V] again, and select tile number 503.






Now lower the floor of the top-middle sector so it's flush with the surrounding sectors.  Now, by default, any newly created maskwall is not going to be blocking, or hittable.  Press [B], then [H] on the glass tile to make it [B]locking and [H]ittable (don't do it in reverse... pressing [H] first then [B] will only make it Blockable... weird.)





If you choose to make the glass breakable, and also have the lower and upper step tiles showing, there are certain instances where breaking the glass will cause the tiles to shift, messing up any alignment you've so meticulously set.  If this happens, press [O] once on either the top or bottom step tile to set them aligned to the ceiling.  That should fix it.




Top



LightSwitches


With your sector already in place, switch over to 3d mode and point the cursor in the approximate location on the wall you wish to place the switch. Hit [S] to insert a sprite, then change its tile to the appropriate one (lightswitch is tile #712).  You should verify the sprite is placed on the wall by sliding around it and checking to see if it stays put or follows your viewpoint.  If it stays put, you've landed it on the wall.  Having it on the wall will avoid those nasty image clips, which never look good when playing.  Move the sprite to Duke's level using PgUp/Dn so Duke can get to it.





Insert a Sector Effector within the sector you wish to be darkened and lightened by this switch.  In 2d mode, change the lightswitch sprite's lotag to a unique lightswitch number, again keep track of what numbers you have used.  Change the SE lotag to 12, which is for Light Switch.  Change the SE hitag to the number you gave to the switch.  This is how the game knows which switch lights up which room.  Set the shade of the SE to the brightness you want when the light is flipped on, and set the sector's  shade to the darkness you want when the switch is off.





Top


 



Mirrors


Start out making three sectors: one large room on the bottom which will be our room to be mirrored, one middle sector which will hold the mirror, and the third which will be used by the game to generate the mirrored image.  Make the third room bigger than the to-be-mirrored sector, but make sure it is the same floor/ceiling height as the sector which "holds" the mirror. For some reason, if the larger room is at different heights, you'll get HOM when Duke ducks down.  It is crucial that the room be larger than any space the mirror could possibly see.





Switch to 3d mode and alter the floor/ceiling heights so they resemble the image.  Make the floor of the top sector higher than the other two for right now.  Make the mirror sector wherever you wish; here I've made it a few notches higher than the main room, and a little bit lower.  I've also changed

the tile of the top sector so that we can discern more easily from the other walls.





Point at the wall (which I've made red here) of the top sector and hit [1]. This will make it a one-way wall.  You should see a tile fill the gap between the floor and ceiling of the top sector.  Point at this wall and change its tile to tile number 560, which isn't very easy to spot, even in 320x200 mode.  It is named mirror, fortunately.





While still pointing at the wall, hit both [B] and then [H]. This will make that wall both blocking and hitscan, which will prevent us from walking through it, and also make it sensitive to ammo hits.  If you switch back over to 2d mode, you will see the wall appear a bright pink.



 





Top



Platform Elevators


Elevator Platforms are probably the easiest of all sector effects.  All they require is a simple Sector Tag to work.  I'm going to cover all four of the different platforms on this page.  Make your lower floor and upper floor like the image, with four elevators.





Switch to 3d mode and set the floor/ceiling heights like the image.  The left-most elevator will drop down from its current height when activated, floor only.  The second elevator will rise from its current height, floor only.  The third elevator will drop from its current height, both ceiling and floor.  Finally the fourth elevator will rise from its current height, both ceiling and floor.





Set the first sector lotag to 16, the second to 17, the third to 18 and the last to 19.  Insert four MusicAndSFX sprites, one per platform, and change all of their hitags to 73, and all of their lotags to 71.  That's all there is to it.




Top



Top



Random Lights After Shot Out


Start out making two sectors, one larger room and a smaller, inner island sector.  The inner island sector will become the light.





Insert two Sector Effectors, one in each sector.  Change the SE Lotags to 3.  Change the SE Hitags to a unique SE-3 number, Ill use 1 here.  Change the Sector Hitag of the light sector to 1 as well. 





Switch to 3d mode and set the ceiling tile of our inner sector to a Light tile... tiles 120 through 125 are good for this.  Make sure you don't choose a tile with the word BUST in it... that tile is used by the game to show the Light is busted. 


The shade of the SE-3 sprite determines the brightness of that sector when the Light is on.  Set all of the walls/ceilings/floors in this sample to some darker shade by pointing at one in 3d mode and hitting the [-] key 8 to 10 times.  You'll want to copy that shade throughout both sectors, so that they all match up.  To copy shade values, point at the wall you want to copy.  Press [TAB] to get that wall's attributes.  Then point at any other wall, hold down the [SHIFT] key, and hit [ENTER].  This will copy only the shade value... very handy.  Do the same for every tile in our sample map... but don't change our SE-3.  For more things you can try with this effect, see the SE Reference Guide.





Top



Rotating Sectors


Start out making one large sector with a smaller sector inside it, as an island.  For posterity's sake, let's make the inner sector a circle.  Switch over to 3d mode and raise the inner island sector up a few notches so that we can differentiate the two.





Place two SectorEffectors within the inner island sector.  Change both of the SE hitags to a unique rotating sector number above 0.  Change the lotag of one of these SE sprites to 1 and leave the other SE lotag at 0.  The SE with the lotag of 1 (SE-1) will be your pivot point to which all of the SE-0 sectors (with identical hitags) will rotate around.  You can place the SE-1 anywhere you like, it does not have to be within the sector you're rotating.  In this example, I've put the pivot point right in the middle of the circle sector.





You can have multiple SE-0 with the same hitag, but you cannot have multiple SE-1 with the same hitag.  To have the sector rotate clockwise, set the angle of the SE-1 to upwards.  Set the SE-1 angle down for counter-clockwise.


You will probably want to have any sprites (including Duke) placed on that sector rotate with it, so change over to 3d mode and set the floor tile to be Relatively aligned.  You do this by pointing the crosshairs at the floor of the sector you wish to rotate and hitting [R].  You should see the tile shift a little bit.  If you don't have the floor Relatively aligned, the walls will look like they are rotating, but the floor will not.   If Duke stands on the sector, he won't rotate with it.  This might come in handy if you wished to set up scrolling tiles, like a message bar.




Top


 



Sliding Doors


Start out by making 6 sectors like the image shown.  Set the Sector Tag of the two smaller sectors to 25.  For the rest of this page, I'm going to refer to these two sectors as the "Tagged Sectors".  Do not change any of the floor heights of these sectors you've created, they should all be the same.  What basically is going to happen is the game will shift any non-player space (marked by the white lines) in each of the tagged sectors to either the left or the right depending on how we've set it up.  Therefore, the ceiling and floor should be at where you want it to look when the door is open.  The two sectors directly to the top and bottom of our tagged sectors are going to be used in a step later on; they are important to place.





Insert two SE sprites, one in each of the tagged sectors.  Change their hitags to a number not used elsewhere by any sliding door.  We want to make them the same hitag so both doors will open at the same time.  Change the SE lotag to 15.  Insert a GPSpeed sprite within each of these two sectors.  Change the GPS lotag to 512.  The GPS lotag is the distance the doors will open.  This will probably take a lot of adjusting as you test your level.  The last thing to insert is a MusicAndSndFx sprite.  You only need to insert one, as both doors will open simultaneously.   Just make sure the MSFX is within one of those two sectors.  Change the MSFX lotag to 170, which is a long, dragging sound.





Change the angle of the left-most SE-15 to point right.  Change the angle of the right-most SE-15 to point left.  They should point in the direction the door will close to.  Take grid-locking off and move all of our Sector-Effectors, GPSPEEDs, and MSFX sprites as close to the dividing line as possible.  It also helps to take off showing of tags by hitting [CTRL] - [T].





The next few steps are a little difficult to explain, so I'm going to show them in little increments.  With grid-locking off, insert three vertices on the two white lines of our tagged sectors.





Turn grid-locking back on, and move the top points (which are now our "doors") onto the tagged sectors' lines, making sure not to leave the sprites outside of player space.  Move the two middle points to the very center spot.  They will occupy the same space, but will not be deleted.



  



Move the adjacent top sectors' vertice to the tagged sector's top line. 





Move it right on top of the tagged sector's top line. 




Do the same for the other three.  They should all be on the tagged sectors' lines.






These last few steps were necessary to avoid texture warping; that nasty little effect when sectors are getting pushed around.  The warping is still there, the player just can't see it :)






Top



Sectors Over Sectors


Create one decent-sized room, with a hall extending out of it.  Switch to 3d mode and pick a tile for the walls that has a horizontal stripe.  Adjust the tile position (using the arrow keys) so that some easily-identifiable line is at the ceiling.  Here, I'm using the light as a guide.  Slope the floor and ceiling of the hall upwards so that the far end of it is higher than the tile mark.  This ensures any sectors we create at the end of the hall will be higher than our first sector.



  



There are some limitations to Sectors Over Sectors, so let me cover them now:


1. Build cannot "see" two overlapping sectors at the same time.

2. Overlapping sectors cannot share red lines.

3. Overlapping sectors must be built at separate physical heights.



Add three more sectors, like the image shown.  But pause after you create the first sector coming off the sloped hall.  Sometimes Build will go in and mess up your floors/ceilings when adding sectors to a sloped sector.  Mainly, it's going to set sloping for the new sector.  If this happens,  you'll want to correct the situation before adding too many sectors.  To take all sloping off of a sector, point at the floor and/or ceiling and hit [/].  You'll notice in this image that I've inserted extra vertices in the last sector.  We're going to use these vertices to extend that sector over the lower sector.



 




Move the vertices of the last sector over the lower sector.  I've numbered the vertices in the first image, and shown their corresponding results in the second image.




 



Switch to 3d mode, and "walk" between the upper and lower floors.  Kinda neat, huh?  You may ask what that fourth sector was for. We created that sector so that there is no single spot where Duke is able to see two overlapping sectors at the same time.  Also, it is not a requirement that you drag vertices over an existing sector to create the effect.  You can create new sectors over existing ones, so long as you've started from a point that is known to be at the level you want.  If you just start creating a sector in an area shared by two or more overlapping sectors, it will default to the lowest physical sector.



Some sage advice on Sectors Over Sectors:


&bull;        Never attempt to join sectors in areas that are overlapping.  This can cause many, many problems... especially if you're trying to join sectors that are higher than the lowest overlapped sector.


&bull;        Always create your sectors/sprites off to a side, and don't overlap sectors until you're ready to finish the map.  Create a long hallway if you need to give yourself room.  Joining, splitting, and moving sectors that overlap is a real nightmare.  Just create them off to a side, and move the entire lot over when its ready.


&bull;        Don't insert/move sprites in 2d mode in an area of overlapped sectors.  They default to the lowest sector, and probably not the sector you're trying to use.


&bull;        If you've moved your finished sector over a bunch of other sectors, and need to go back and change something, remember there are keys in 3d mode to change hitags and lotags.  They are [']-[H] and [']-[T] for hi/lo, respectively.



Top



Star Trek Doors (Split and Normal)



Start out making five sectors, like the image here.  The top and bottom sectors are the two rooms being joined.  Set the Sector Lotag of the very middle sector to 9 for Normal Star Trek Door, or 26 for Split Star Trek Door.  From here on out, I will refer to this as our "tagged" sector.  This will become the door.  The two sectors surrounding the tagged sector are entryways, so that the door has equal floor/ceiling heights on both sides to use as markers. 





Take grid-locking off and insert six vertices; three per white line of our tagged sector.  The four points, marked by the little green arrows, must be kept in line with the door's red lines.  We'll do this in the next step.





We need to move the white line vertices we just inserted so they represent the shape of a door, one door on each side.  Two catches when making Star Trek Doors:  1) the white lines of the door must be right on top of the red lines of its parent sector, and 2) you must have both halves of the door touching in the middle.   What will happen in the game is this:  the door will split open from the middle, the ceiling will raise to a neighbor, the floor will lower to that neighbor, and any void-player space (our door) will move to the sides.  Hit [G] in 2d mode to increment the grid spacing by one.  We need to be perfectly inline with the red lines, and our two doors must meet in the middle.  Move the vertices so they come close to the image.






Take it one step further and move the two points of the door halves so they share the same spot.  They won't join into one... they will simply occupy the same place in Build.  Insert a MusicAndSFX sprite in now before we get any further.  This sprite must be located in the player space area.  Set the MusicAndSFX lotag to 166, or any music number you prefer.  The lotag represents both opening and closing sounds.





Now is a good time to set the door's tiles.  Switch over to 3d mode and set your tiles.  Please note the tiles of our door will squish when the door opens.  Our door is pretty small and will open very fast, so the player shouldn't notice anything unusual about the tile squishing.





If you only wanted to make a Normal Star Trek Door, you could stop here. If you want to make a Split Star Trek Door, we still have another door left to handle... the door that splits from the middle and opens vertically.  Luckily, there are no more sectors to add.  The sector already exists... it is our tagged sector. 


Switch to 3d mode and point at the sector floor of our tagged sector.  Raise the tagged sector's floor so it reaches the middle-height of the surrounding rooms.  Change the floor tile to an appropriate door tile, and do the same for the tagged sector's ceiling.  Now point at the tagged sector's ceiling and lower it as far as it can go; right down to the "floor", which is now in the middle of the room.  Set the door's tiles, and you're pretty much finished. 


You'll probably want to have separately editable tiles for both the top half and bottom half of your door.  Remember that to make them separately editable, you hit the number [2] when pointing at the wall.



                                       



Top



Subways


Start out making one large oval sector, with a "station" at the top and two island sectors which will become the cars.  Set the floor tile of the large oval sector to tile #859 (railhurt) to have Duke get zapped if he stands on the rails.  Change to 3d mode and raise the floor of the island sectors so you can see them.  Point at their floors and hit [R] to make them relatively-aligned (sprites will move with the subway.)





Change both of the island sector hitags to 1.  Insert a SectorEffector within each of the two island sectors.  Change the SE lotag of the lead car to 6, and the trailing car SE lotag to 14.  Change the angle of the two SEs to the angle in which the car will begin travel, ie the line will point right if the car is to start moving to the right.  To make multiple groups of cars, change the sector hitags of the second group to 2, and so on.  You can have more than one car as well, or even just one lead.





Insert 9 locator sprites (LS) positioned like the picture below.  This is the path your cars will travel through your level.  You must uniquely identify each of the LS lotags.  Starting from the top-middle locator, start counting from 0 and change each of the locators lotags, following the path you wish the cars to travel.  The cars will travel in succession across the locators.  To make the subway cars stop at a given locator, change its hitag to 1.  If you plan out a lengthy track, make sure you place extra locators and assign them in the proper order.  That way, if you want to add another stop along your track, you won't have to go changing every locator lotag after it or their relative position.  The SE hitag of the individual cars points to the first locator it will come across.  In this example, the hitag is set to 0, which is the first locator we want it to cross. 





That's all you need for a functioning subway.  But it's pretty lame, and not much fun.  We're going to add some interior walls, a window, and bench seats to our subway cars.  There are a few key points to note when dealing with sectors-in-sectors and subway cars:


The outer, parent sector is the only sector which can contain the SE-6 or SE-14 sprite.


Each inner sector must have the same hitag/lotag combo as the parent.


Each inner sector may only share one line with the outer sector.


Duke can only walk on the parent sector, or he'll get shuffled right off the car and possibly get squished.


Each interior sector must be made of red lines; no white lines are possible.


Interior sectors may only be one level deep; ie no sectors within those interior sectors.


With those limitations in mind, let's create a front and back wall to our car. Both walls will be completely inside the outer sector.  The front wall will be comprised of three joined pieces:  the left and right sections, and a middle section that will become a window.  When you create sectors within sectors, they automatically pick up the same tag as their parent.  Make sure you've set the parent sector hitag according to the instructions given earlier.





Take grid-locking off and move the points of our walls to the very edges of the car, but don't overlap any red lines or vertices.  While it may look like they overlap in this image, they really do not.





Switch to 3d mode and lower the ceilings of the back wall, and the two side pieces of the front wall, all the way to the floor, blocking Duke from walking through.  Raise the floor of the middle/front wall a little ways to make a window sill, and lower the ceiling.





Add two sectors within the car.  These will become the bench seat.  Take grid-locking off, and move them real close to the back wall, but not overlapping.  You should get the feeling that we're trying to work around the limits of the engine... we are.  While in 2d mode, make all of the walls of the bench blocking (hit [B] on them.)  We need to do this to ensure Duke won't walk on them... they're nice to look at, but Duke will get shuffled right off the car if he attempts to walk on them.



  


Top


 



Swinging Doors


Start by making two sectors, attached to each other by a single wall.  Make one of the sectors bigger than the other, with clearance on either side of the red line as pictured.  The top sector must be taller than the red line, so that when the door swings open, it has room.





Insert a vertice somewhere in the middle of the red line.  Start drawing a sector from one of the corners of the smaller room, touching the larger room.  We want to make a penisula sector inside the larger room.  Make at least four sides for now.  Finish this penisula sector on the vertice you inserted on the red line.  Make the sector big enough so that you can place sprites and change tiles & heights easily.  You'll want to shrink the sector down when it's finished to the appropriate size of a door, but for now give yourself some room to work.  I've made the top sector rather small for graphic-size constraints.  You should make the sector large enough to accomodate the swinging door; ie the longest wall of your door should be shorter than the room you have allocated for the door to swing into.





Drag the vertice you inserted earlier (on the red line) to the corner you used as the starting point (pivot) of your penisula, so that the vertice will be deleted. It is critcal that only one of the vertices of our door sector share the point with another sector.  We had to insert the vertice on the red line earlier because the Build editor won't allow you to use that corner vertice again.  It's just a little caveat.





Insert a SectorEffector within our door sector.  Change that Sector Lotag to 11, which is for Rotate Sector Door.  Assign a unique Swinging door hitag to the SE.  Multiple SE-11 with the same hitag will all open, or rotate, at the same time.  This is useful for double doors.  Change the sector lotag to 23.





Turn off Tag Display by hitting CTRL-T, so that you can see the angle of the sprite better.  Switch over to 3d mode and set your tiles and floor/ceiling heights of the door sector accordingly.  The entire sector will rotate, both ceiling and floor.  Set the door sector ceiling to the same height as its parent sector's ceiling if you want to see just the lower part move when playing.  Switch back to 2d mode and Turn off grid lock by hitting [L]. Move the vertices of your door to fit the width of your opening, like the picture below.  Insert two vertices, really close to the pivot point.  I've marked them with little green arrows here.  These points will stop the tile squishing that occurs when our door is rotated open.  Build takes all of the points of our door sector and rotates them around the SE-11.  Well, any points  attached to permanent walls will rotate with the door as well, messing up the tile alignment.





You can overlap red lines and other vertices here because the door sector only shares that single point.  Also move the SE to the very corner, or pivot point.  Look at the angle of the SE by noting the line coming from the sprite's circle point.  If the line is extending upwards from the circle, the door will rotate counter-clockwise.  If the line is extending downwards, the door will rotate clockwise (the BuildHlp file has it backwards).  Insert a MusicAndSFX sprite within the door sector.  Change the MSFX hitag and lotag to 165, a nice door-sound.  The MSFX hitag is for the door closing, the MSFX lotag is for the door opening.



Top



Teleporters


Start out making two sectors, each 15 units or so on a side.  Then make two "island" sectors within them, one island in each of the two bigger ones.  As a reminder, you make an island sector by drawing a sector completely within a bigger sector, then hitting ALT-S with the mouse pointing inside the smaller sector.  The inner sector walls will turn red.  The island sectors do not have to be the same size, even though this picture shows them as being so.





Insert a Sector Effector (SE) within each of the two island sectors.  Change both of the SE's lotags to 7, which is for transport.  Finally, change both of their hitags to a unique transport number, just make sure both hitags are equal.  This is how they know which sector to transport to.  I don't know what would happen if you set three or more SE-7 hitags to the same number, but I have a feeling it won't be pretty.




Top



Up Open Door Lights



Start out making a doom-like door.  The SE-8 will only work with a sector that raises the ceiling.  Make the top room like the image, with a wall extending through the middle.  We're going to use this to create a neat lighting effect.  The light will basically "originate" from the lower sector. 


Before we start splitting the sector, switch to 3d mode to set your tiles, and darken (7 or 8 clicks) the top sector's walls, ceiling, and floor... it will save a lot of needless duplication.  We set the sector's shade to when the door is closed. A quick way of copying shade values is to point at a darkened tile and hit TAB. Then point at any other tile, hold down the Left SHIFT key, and hit [ENTER]. This will copy the shading value only.  Very handy.





Switch back to 2d mode and and split the top sector into light-source slices, like the image.  We're going to set the shade of each of the slices slightly different from the others around them to create a dithering effect.





Insert 9 Sector Effectors, one in each section of the top sector, and one in the door sector.  Change all of the SE lotags to 8, and change all the SE hitags to 1 (should be unique for multiple sets.)





Switch over to 3d mode and darken the shade of the SE-8 sprites in the sliced sectors.  By default, a Sector Effector will have a shade value of 0 when first created.  This will create a fairly bright sector when we open the door, so our largest section of the top sector and the door sector can stay at that value.  The three SE-8 in our sliced sectors should be darkened by two clicks.  Point at the SE at hit [-] two times.  The three after that should be darkened by four clicks.  The last remaining SE will be at six clicks. I've put numbers representing the shade value next to the SE sprites in this image.  You'll also notice my door is not all the way at the floor; I do this so that any changes I need to make to the different SE and shading can be accomplished much easier.



  



If you have a wall within a sector that you don't want to light up when the door opens, Set that wall's hitag to 1.  You'll want to do this for the interior door wall; as no light can really reach it.


Run your level and check it out.  Stay inside the room when the door closes and you'll see the slices darken to one shade and lighten to three separate shades... very neat.



Top



Water Sectors


Start out making one sector with an island inside it.  Make the larger sector 15 to a side and the smaller island around 10x5 units.  The larger sector will be your room, and the island sector will appear as water.  Off to the side, and separate from the other two, make another sector that is exactly the same size as the island sector; 10x5 or whatever you made.





Place a SectorEffector in both the island sector and the separate sector.  Change the SE hitags on both to a unique Water Sector tag, again keep track of which numbers you've used.  Set the SE lotags to 7, which as you might already know, is for transport. That's basically what water sectors are; you transport to another sector that is underwater.  The differences being there isn't the transport sound and flash, and you transport by either falling through the floor or by swimming past the ceiling. 


The two SE-7 must be in the same location on both sectors or you'll have nasty deaths.  Set the sector lotag of the "above water" sector to 1.  Set the sector lotag of the "below water" sector to 2.  Change over to 3d mode while putting the white arrow in the "above water" sector and change the floor tile to the water texture.  Do the same for the "below water" sector ceiling.




Top



Two-Way Trains


Make four sectors, like the image shown.  The two large sectors will be the track and platform, and the inside sector will be the actual train.





Change the sector lotag of the two inside sectors to 31.




Place a Sector Effector sprite inside the car sector, and change its lotag to 30.  Change the angle of the SE-30 to point towards the front of the car.  Change to 3d mode and raise the floor of the 2x1 sector inside the car.  Place a switch flat against the wall of this raised sector, and change its lotag to a unique switch number, I'll use 1 in this example.  Insert an Activator sprite within the car sector, and change its lotag to the same number you gave to the switch lotag.  The Activator is what triggers the SE-30 when the switch is flipped.



  



Place two Locator sprites, one on each end of the track, to mark the two points at which the car will stop.  Change the lotag of one of the two Locator sprites to 1, it then becomes point B.





You can trigger separate events when the car stops at the two Locator positions.  For instance, you can have a door open when the car stops at the left-most position.  I'll show an example of having two doors open up, each opens when the car stops at that given Locator.    Ive already made the doors.


To do this, you need to change the SE-30 hitag to a unique Activator number, I'll use 5.  We then place an Activator sprite in the two door sectors. They will then trigger the Sector Tag (or SE if one was there) within those sectors.  Here, we want to trigger a door, which is Sector Tag 20.  Change the lotag of the Activator  you wish to be triggered when the car stops at point A (Locator with no tags) to the same number you gave to the SE-30 hitag (5).  Move over to the other Activator, and change its lotag to 1 + the SE-30 hitag (6).  This will trigger when the car stops at point B (Locator with a lotag of 1.)





Top



Bridges


Start out making three sectors, like the image.  The top peninsula sector will become the actual bridge.  The little island sector is just a place to put our switch so we can watch the bridge move.





Insert a Sector Effector, Activator, and GPSpeed sprite within the peninsula sector.  Change the sector lotag of the peninsula sector to 27.  Change to 3d mode and raise the floor of the peninsula sector up 2 or 3 clicks to make it stand out.  Raise the little island sector up 12 or13 clicks so you can place a switch at Duke's level.  Insert a sprite flat against one wall of the island sector, and change its tile to some switch tile (I'll use dipswitch, tile #162.)  Change the switch's lotag to a unique switch number (I'll use 1 in this example.)  Give that same number to the Activator Lotag and Sector Effector hitag.  Change the Sector Effector lotag to 20.  Move the Sector Effector near the wall you wish to have the bridge extend from.  The bridge will use the wall closest to the SE-20 as its point of origin.  Change the angle of the SE-20 to point in the direction you want the bridge to go.  We want our bridge to extend towards the switch, so the angle is set to point downwards.



The GPSpeed sprite will determine the distance the sprite will move.  When you first start Build, the default grid size is 256x256 units.  So, to make the bridge move two grid spaces, you'd set the GPSpeed lotag to 2x256, or 512.  The little green arrows in the image are my additions; they only show the distance being marked off.





Change to 3d mode and point the cursor at the floor of the peninsula sector. Hit [R] once to set Relative Alignment, which will make the floor expand as the sector stretches out.  Please note the ceiling will also expand, so the tiles will look offset to the rest of the ceiling around it.  By using Relative Alignment, the tiles will appear to expand from the Sector's FirstWall. To change the FirstWall assignment, change to 2d mode and move the cursor inside the sector to be modified.  Move the cursor close to the desired wall so that it starts to flash.  With the cursor still inside the sector, hold down the [ALT] key, and hit [F].  You can also do this in 3d mode, by pointing at the wall inside the sector, then hitting [ALT] +F.  But there's not always a wall there, ie if another sector shares that wall, and the ceiling and floor are flush between both sectors.






Top



Cranes


Cranes are yet another of Duke 3D's many fascinating features. By their ability to pick up and drop any graphic sprite (whether fixed or animated) at predetermined locations, they offer  many possibilities to the map designer and can bring another tactical element to the game when used in Dukematch levels. Oddly enough, very little has been written about cranes (the BuildDocs omit them entirely) although they are used in the popular E1L4 level: Toxic Dump.


While cranes operate all by themselves, conveyor belts will be needed in most instances for moving objects around.


Start by making a large outer sector and two smaller inner void  sectors as shown here. Go to 3D mode right away and make the ceiling height about 70 clicks above the floor. Go back to 2D mode and draw the remaining sectors by adding new vertices where required and also by splitting the existing ones. Raise the floor of sectors 2, 3, 4, 5, 6, 7 and 9 high enough so that Duke can't jump up to them (30 clicks in the example map) and raise the floor of sectors 1 and 8 a few clicks to create a platform. Also, raise the ceiling height of sectors 1, 2, 3, 4, A, and B by 4 clicks above the previously set ceiling height. These will be the crane ceiling track sectors.



 



Using the [S] key, place two sprites at the locations shown in the  picture on the left. Next, go to 3D mode and with the cursor  pointing at the sprite in sector 1, hit [V]  twice.  Select tile #1221, a vertical pole appears. As far as the cranepole sprite is concerned, you can bring it all the way to the ceiling or the the floor or even just leave it where it is, this has no effect on its function in gameplay. Aim the cursor at the second sprite, hit [V]  twice, select tile #1222 and the crane appears. This sprite has to be on the ceiling to work properly so hit [Ctrl-PgUp] while aiming at it. Go back to 2D mode, point the mouse cursor on the cranepole sprite, hit [B] to make it blocking and using [Alt-H], assign a unique hitag to it (1 in this case). Change the hitag of the crane sprite to the same value as its target cranepole and use the [<] and [>] keys to change the angle so it points in the direction the  crane will travel.   Repeat this process for the crane-cranepole pair  in the picture on the right using different hitags. The lotag values of these sprites have no effect. Just make sure the crane sprites sit exactly in the center of their track sector.



 



 

Cranepole sprite                                    Crane sprite



At this point, feel free to take a little time to change the ceiling track texture (tile #353 in the top right picture), the ceiling  track inner side walls texture (tile #288). If necessary, use the [F] key to flip the ceiling texture and since the crane sprites were previously centered in their respective sectors, they can be used as a reference to center the ceiling texture using the [Shift-4] and [Shift-6] keys.


Now, in 2D mode, insert SectorEffector sprites in  sectors 2, 4, 5, 6, 7, 8 and 9 where the conveyor belts will be, hit the [Alt-T] key and change their lotag value to 24. Change the angle of these sprites to point in the direction of belt displacement as shown in the pictures left and below, there are 7 in all. Also, place 4 NukeBarrel sprites at various locations on the conveyor belts. In this example map, they have been made to be blocking but  this is not necessary. 





While cranes can pick up any graphical sprite, some behave strangely and won't go all the way to the floor when dropped. From here, it's a matter of trial and error if you want to use other sprites. NukeBarrels work well and they spill a puddle of radioactive sludge when shot (not on moving floors or in mid-air though).





Go to 3D mode and change the floor texture of the sectors to tile #1156. It might be necessary at this point to make the floors Relatively Aligned by using the [R] key while pointing at them with the mouse cursor. Make sure that the lines in the belt are oriented the right way and that, once in the game, the belts are moving in the same direction as the floor. If not, restart Build and use the [R] key again, save and restart the game. You may have to go back and forth several times until they all work properly. Unfortunately, there is no other way to do this.






A few words on the behavior of cranes:


&bull;        As soon as any object enters the sector containing the cranepole sprite, the crane initiates the pickup an drop sequence even if the object leaves the sector before the crane arrives.

       

&bull;        Objects are picked up on a first come-first served basis when entering the cranepole sector although it is possible for the player to jump on top of the object in order to picked up first.

       

&bull;        If Duke is looking in another direction before being picked up by the crane, he will be instantly turned around to face direction of travel once picked up. He can look or aim up and down and shoot while in the crane but cannot turn around.

       

&bull;        Any destructible object can be shot at and destroyed while carried by the crane. Also, if you shoot at the crane in a particular spot with bullet projectiles, you will hear a ricochet sound and it will drop the object it is carrying in mid-travel. Often, monsters which have been picked up by the crane free themselves this way (while trying to shoot Duke) and so can Duke.

       

&bull;        When Duke enters the cranepole sector while flying with the jetpack, the crane pickup sequence is initiated but he won't  be picked up. He will temporarily be driven all the way to the floor either by the crane or by an object that can't be picked up (like barrels) when standing in the drop zone while the object passes over his head.

&bull;        
It is possible to use the jetpack to fly up to the  crane and pick up any weapon, ammo, gear or health it is carrying while in transit. If you fly all the way up the ceiling of the track sector and stand in its path, it will stop until you move out of the way.

       

&bull;        Cranes are, of course, indestructible but cannot harm Duke either. They can be used for going up places too high to jump to if you don't have a jetpack, for delivering pipebombs to your opponents and setting off laser tripbombs.

       

&bull;        It is also possible to hop on a crane that has already picked up an object and and walk along while it moves to get to its destination (a bit tricky though).

       


Limitations of cranes:




&bull;        Cranes work well as long as their path is orthogonal to the map grid, if you  give them a diagonal or angular path, they will behave erratically.

       

&bull;        Cranes only move in a straight line and will pickup any object present in the cranepole sector, even if that sector is much larger than the track sector and the object is far from the cranepole sprite. It simply snaps to where the crane lowers. This is somewhat strange. In order to keep things realistic, make your pickup sectors small.

       

&bull;        The speed of cranes cannot be altered.

       

&bull;        Aliens can be picked up by the crane although it's very hard to get them to stay in the pickup sector long enough for that to happen. Unless, of course,  you place an alien stayput sprite in the pickup sector in Build.  In that case, make the sector large enough to contain it, otherwise the crane might behave erratically.

       

&bull;        If one does get picked up by chance and you want to kill it in transit, unless you're a crack shot, forget projectile weapons, use the RPG. Cranes move relatively fast.

       

&bull;        Some sprites like rubbercans and statues don't drop all the way to the floor when released by the crane and can become permanent obstacles in the game. Sprites that work well are weapons, ammo, gear, health and pipebombs, of course.  Experiment and find what works best.

       


 


Lightning

  Lightning is one of the easiest Sector Effectors to create.  It of course is only available with the Plutonium Pak, so if you're running the 1.3 version, you'll need to upgrade.  It's worth it, believe me.


  Start out making your sector, a single big one will suffice here.  Insert two Sector Effectors, and change their lotags to 28. Insert 8 NaturalLightning sprites (tile #4890), four to each SE-28.  You can have more than four per SE-28; I'm keeping it small for now.  Place them in a circle fashion around the SE-28.  For one group of SE-28 and lightning bolts, change all of their hitags to 1.  For the other group, change all of their hitags to 2.  When the lightning "strikes", it will randomly jump to the positions of the matching lightning bolts you placed.






Top



Incremental Sector Raise/Fall



This Sector Effector applies only to the PPak; it is not available with the 1.3 version of Duke3d.



Create three sectors, two room-sized sectors and a dividing door-like sector.  We're going to have the middle door-like sector lower incrementally from the ceiling so that we can pass through.







Insert an Activator and a Sector Effector in the door-like sector. Place a switch on the wall nearby.  Change the Sector Effector lotag to 18.  Change the Activator lotag to a unique switch number; I'm using 1 here.  Give that same number to the switch lotag.  The Sector Effector hitag is the rate at which the sector will move.  Setting this hitag to 1 will cause the sector to lower one unit at a time.  One unit is defined as one PgUp or PgDn in Build.  Set the Sector Effector hitag to 2.





Switch over to 3d mode and move the SE-18 all the way to the ceiling.  Change the SE-18 palette to 1, by pointing at it and hitting [ALT] +P. Changing the palette to a number other than 0 will cause the sector to start at the SE-18 height when playing the game, and then move to where the sector height is in Build.  Otherwise, the sector would start where it is in Build, then move incrementally to the SE-18 height when playing the game.





The SE-18 sprite can also move the ceiling.  Simply change the angle of the SE-18 sprite so that it points downwards.  You might be wondering exactly what value the SE-18 sprite would be.  In our example, we've only got one switch, and it takes 10 or so flips to lower the sector floor down. Seems kinda tiring to the player, doesn't it?  You can use Touchplate sprites scattered about to do the lowering, setting their hitag to 1 so they only activate once.  That way, Duke will have to walk across multiple

areas to lower it all the way.



Another example: say you have a room with 4 dipswitches mounted about. As soon as Duke walks in, a Touchplate sprite closes the door behind him. One of the dipswitches opens another door to get out.  The other 3 are linked to a SE-18 and cause the ceiling to lower by 20 notches... but the ceiling is only 40 notches over the floor.  Two wrong guesses and Duke's toast :)  Play with it, and see what you can come up with.



BUILD Dox
This came straight out of the BuildHlp program.  I'm duplicating it here for your reference.


Original Build Docs written by Allen H Blum III & Richard "Levelord" Gray.



3d Edit Mode Keys



F1

Help.  Brings up a display of some special keys to use in 3d mode. Press F1 again to hide the display.



ESC        

Quit



Keypad ENTER

Flip to 2d mode



Mouse

Pointer movement



Arrows

Movement like in the game



Caps Lock

A and Z keys controls

Mode 0:  Game mode (default)

Mode 1:  Height lock mode

Mode 2:  Float mode



PgUp/PgDn       

Raise or Lower a ceiling or floor.  If you point at a wall, the ceiling of that sector will move.  Highlighting multiple sectors in 2d mode will allow you to move all of those sectors simultaneously.



Ctrl-PgUp/Dn

For sprites only, puts sprites exactly on the floor or exactly on the ceiling.



V

Tile selection.  Use the arrow keys to select a tile from your map's tile group.  Press V again to bring up the entire tile listing.  Press ENTER to select a tile, or ESC to back out.



/ and *

In Tile Selection mode only.  Increases/Decreases the size of the thumbnail images.



ALT-V

Height selection.  Works just like V, but this selects the groudraw height map.



2,4,6,8 (Keypad)

Repeat values (tile smooshiness.)  Think of these keys as arrow keys controlling the bottom-right corner of the bitmap.  Normally, this is used for walls and sprites.  If you select a floor or ceiling, the tiles will shift, but not smoosh.




Shift + 2,4,6,8 (keypad)

Panning values (offset into the tile.)  These keys are useful for aligning tiles of multiple sectors.



/

Use this key to reset panning/smooshiness of a tile.



5 (keypad)

If you hold down this key while using the 2,4,6,8 keys on the keypad, the values will align at multiples of 8.



>

This key attempts to match up all of the tiles along a wall. It scans along the walls towards the right as long as the tiles are the same as the chosen wall.  Some walls may not work right, especially floor/ceiling steps.  Sometimes build will lock on machines with lower amounts of memory when using this function.



['] + [T]

Sets the lotag for the object you're pointing at: sprites and sectors. Point at the sector floor to set its lotag.



['] + [H]

Same as above, except it sets the hitag.


['] + [S]

Changes the shade value of a sprite, ceiling, floor, or wall.



F

Flip an obejct.  For sprites and walls, this flips the object x-wise. For ceilings and floors, the objects are flipped in 8 possible ways. Just keep pressing [F] to go through the 8 different ways.



Alt-F

When you use relative alignment mode on ceiling and floor textures, you can press Alt-F to choose a new wall to align to.  It actually rotates the walls of a sector by 1.



Alt-P

Changes the palette of a wall/ceiling/sprite.  Valid ranges are 0-25.  4 is solid black.  0 is the default color for that tile.  Not all values change the color for certain tiles.



O

Wall orientation (whether it starts from the top or bottom.) Normally, walls are oriented from the top.  For example, if you hold down 2/8 on the keypad in 3d mode, the wall always starts from the top.  Orientation works differently for white lines and         red lines, so if a wall doesn't look right, just press [O] anyways to see if it fixes it.  This is especially true of glass walls- press [O] once on the tile above the glass wall if it gets screwed up when you shoot the glass in the game.



TAB

Copy.  Copies the attributes of the pointed-at sprite/tile into the clipboard.  The attributes it remembers are: tile, shade, x-repeat. y-repeat. and cstat values.


Left ENTER

Paste.  Paste the stored attributes over the pointed-at sprite/tile.  Whenever you press ENTER, the y-repeat values stay the same, and the x-repeat values are adjusted so the pixels of the bitmaps have a square-aspect ratio.



Ctrl + Left ENTER

Pastes the attributes to every wall in a loop when a wall is pointed-at.




Shift + Left ENTER

Pastes the shade only to the pointed-at wall or sprite. 





Ctrl + Shift + ENTER

Auto-shade a sector.  First make any wall of the loop as light as the lightest shade you want.  Then make any other wall of the loop as dark as the darkest shade you want.  Finally press Ctrl-Shift-ENTER on the wall that should be the lightest.  Now the loop should be smoothly shaded.  If it doesn't work, you may need to insert more points on the walls.




Sector Flags:



P

Make the ceiling of the given sector have a parallaxing sky.  Press [P] again to return it to normal.



G

Make the floor of the given sector have a Groudraw (floor with height mapping.)  They do not recommend using this attribute extensively yet.  (See the H key for selecting the height map)



E

An option for ceilings and floors.  If for some reason, you want a tile to be smooshed into the normal 64*64 area, press [E] to unExpand the tile.  Press [E] again, and the tile will be expanded, so the pixel size is the same as the normal 64*64 ceiling/floor.



R

Relative alignment.  Allows floor/ceiling textures to align to the first two points of a sector.  Textures will rotate/pan with moving sectors properly.  This is especially useful for subway floors.




Wall Flags:



B

Make an invisible wall, such as a window, block you from going through.  Since the wall is invisible, you need to point at the tile right above the window, or the tile below the window.  Note: pressing B on a wall will take off any hitscan you may have placed on it.



T

Press to make a maskable wall 50/50 translucent. 



M

Make a maskable wall.  Point at the tile below or above the window to set.  The wall takes all of its attributes from the front of the wall, so it must have the same repeat, panning, and cstat values as the walls above or below it.  The masking is added to the other side as well, with the image flipped.



Shift-M

Same as above, except the wall is one-sided.



1

Make a 1-way wall.




2

Some walls have two different sections (like the tiles above and below a window.)  Normally they always have the same attributes. It is possible though to give both the top and bottom different attributes by pressing 2 on that wall.  They then become separately editable.



H

Toggle the hitscan bit.  Default is pass-through.  Very useful for glass walls. 



Sprite Flags:



S

Press S to insert a sprite.  Pointing at a wall will create the sprite so that it's flat against the wall.



R

Press R on a sprite to change its fixation.  Pressing R once will make the sprite fixate vertically, like a poster.  Pressing R again will make the sprite fixate horizontally, like a flat rug.  Pressing R a third time will make the sprite follow your viewpoint.



B

When the mouse cursor is on a sprite, this makes the sprite block you from walking through.  Also makes the sprite sensitive to hitscan.  Sprites with the [B] attribute will appear pink in 2d edit mode.




T

Press to make a sprite 50/50 translucent.  Press T again to put sprite back to normal mode.





2d Edit Mode Keys:



ESC

Brings up the file menu - (N)ew (L)oad (S)ave (Q)uit.  Press ESC again to exit the menu.



F5

Weapons/Health sprite summary for your map.




F6

Alien sprite summary for your map.



F7

Small listing of the different Sector Tags... sometimes it will display the Sector Effectors.



Keypad ENTER

Flip to 3d mode



Mouse

Move mouse cursor



Left mouse button

When holding this button down, you can drag existing points and sprites.




Right mouse button

Moves the player's viewpoint (white arrow).  Press this button anywhere in your level and the player's viewpoint for 3d mode will be at that spot. 



Right Shift

Select a bunch of points to drag around.  Press and hold right shift then move the mouse cursor to enlarge the box.



Ctrl + Right Shift

Press this combo within a room to highlight all points of that room, so that you can drag them all in one motion.



Right Alt

Select a bunch of sectors for either duplication or dragging around.  Press and hold right alt then move the mouse cursor to enlarge the box.



Arrows

Move player's viewpoint in the appropriate directions.  The player will be clipped.  To move to another portion of the map, use the right mouse button.



Space

Press to begin drawing of a new sector.  There are several ways to draw a new sector:

1.  Drawing a full loop- that is, whenever the new sector meets the old  sector, draw over that line again.  In full loop mode the new sector must not already be in another sector.  The loop is done when you press the space bar at the first point again.

                       

2.  Splitting a sector - press space bar to draw points at which you want to split a sector.  The points (aka vertices) must already be in place to split a sector.  Press INSERT to add points on an existing line.  You must end the split on another wall of the starting point's sector, and you cannot cross any red lines when drawing. 


3.  Drawing a sector completely inside a sector (like columns.) To do this, just press space bar at every point in the loop.  Do not make the column valid player space (Alt-S) if the column is never to be walked over/under. 




Backspace

When plotting points with the space bar, you can use backspace to get rid of the last point plotted.  You can press the backspace key all the way to the beginning point, if you decide not to make the sector at all.



Insert

Inserts a new point at the midpoint of the highlighted line.  Then you can drag the point to wherever you want, or draw a sector from that point.  If a bunch of points are selected (see right Alt) then instead of inserting points, the selected sector bunch will be duplicated (stamped.)  Don't forget to drag the selected sectors after stamping.



Delete

Use this to delete sprites (blue/purple circles.)  To delete points of a sector border, you can't use delete.  Instead, drag the point to be deleted onto one of its 2 neighbor points on the loop.  This is only possible with grid-locking on. 



Right Ctrl-Delete

This deletes the whole sector that the mouse cursor is in.  Note that the right Ctrl for protection.  Do not attempt to use this on sectors inside sectors, you may end up deleting the parent sector.  Instead, join (see J) that inner sector with its parent, then delete them both.

  


J

Use to join neighboring sectors.  They must share at least one red line.  Press J when the mouse cursor is over the first sector, then press J again on the second sector.  The attributes of the new combined sector will be taken from the first sector selected.



Alt-S

When you have a white loop inside a sector, you can press Alt-S when the mouse cursor is inside it to turn the sector into valid player space (red lines.)



S

Inserts a sprite in the location under the mouse cursor.  Pay attention to areas with sectors over sectors.  The newly inserted sprite will default to the lowest physical sector if your cursor is positioned in a spot where two sectors overlap.



B

Blocks/Unblocks the player from walking through a wall or sprite.  A blocked wall or sprite will appear pink in 2d edit mode. 





C

Turn a line into a circle defined by the short line segments.  First press C on the highlighted wall, then move the cursor to the furthest radius position.  Pressing C again will cancel the circle.  Pressing +/- will change the number of points on the circle.  Press the space bar to finally create the sector.



+/-

Increase/Decrease the number of points on a circle (only works when you're creating the circle.)





T

Type in the lotag for a sector.  Move the cursor to the inside of the sector to be tagged.



Alt-T

Changes the lotag for sprites and walls.



H

Type in the hitag for a sector.  Move the mouse cursor to the inside of the sector to be tagged.



Alt-H

Changes the hitag for sprites and walls.



E

Change the sprite's status list number. (Not sure on the functionality of this.)



> and <

Change angle of sprites.  Move the cursor over the sprite to be angled.  Use shift-> and shift-< for more precise angles.  If you highlighted sectors, the sectors will be rotated.



Ctrl-T

Turn tag display on/off.



TAB

Shows the attributes of a sector.  Move the mouse cursor inside the sector to be viewed.  Press TAB again to hide the attributes.



Alt-TAB

Same as above, except for sprites and walls.



Scroll Lock

Sets the player start position (brown arrow) to your current viewpoint position (white arrow.)





A,Z

Zoom in/out. 



G

Change grid resolution.  The grid cycles through this sequence: off, 1x, 2x, 4x (default), 8x and 16x.



L

Turns grid-locking on or off.  If the mouse cursor is pink then grid locking is on.  If it is white then grid locking is off.  There is no grid locking if the grid is turned off. 




EditArt Keys



U

Use this to import a section of a 320x200x256 .BMP, .PCX, or .GIF image.  GIF images import best.


Enter - Convert the image that is inside the rectangular selection box to the Build Palette.


Space - Convert the image that is inside the rectangular selection box without remapping the palette.


P - If in the picture selecting screen (after pressing U and loading the picture) you press P, then the palette of Build can be replaced by the palette of the displayed picture.



PgUp/Dn

Select tile to edit (4096 tile maximum)



G

Goto a tile by typing in the tile number.



S

Re-size a tile.  The X and Y sizes can be any unsigned short integer.  X ranges from 0 to 1024, and Y ranges from 0 to 240.



Delete

Shortcut key to set both the X and Y sizes to 0.



+,-

Change the animation setting.  Default is 0: NoAnimation.  To change the animation type, press - when the value is 0.  Example:  if you want an object to have four tiles of animation, you can animate it in 4 different sequences: (0 is the first tile)

NoAnm=4 - sequence: 0,0,0,0...

Oscis=4 - sequence: 0,1,2,3,2,1,0,1,2,3 (Oscillate)

AnmFD=4 - sequence: 0,1,2,3,0,1,2,3,0,1 (Forwards)

AnmBK=4 - sequence: 0,-1,-2,-3,0,-1,-2,-3 (Backwards)

See the EditArt basics page for more info.



A

Set the animation speed of the tile.  Press + and - to change the animation speed.  There are 16 different animation speeds.  The animation speed set in EditArt sets the speed for Build and the Game.



~

Centers a sprite.  Simply use the arrow keys to get to the desired position. 



N

Name a tile.  The sprites will have their name appear in 2d edit mode if Tag Boxes are turned on (Ctrl-T)



O

Optimize the size of an individual piece of artwork.  Use this for tiles with invisible (masking) pixels on the sides.



V

View and select a tile to edit.



Space - To swap 2 tiles simply press space bar on the first tile, then space bar on the second.  Doesn't work too well across TILE     boundaries... ie TILES013.ART to TILES014.ART.


1,2,3 : To swap a group of tiles, press 1 on the first tile, press 2 to remember the region between where you pressed 1 and 2.  Press 3 at the place to where you want to swap all the tiles.




Alt-U

Re-grab artwork from original pictures according to the CAPFIL.TXT file.  If you press Alt-U in the main screen, everything will be re-grabbed.   If you press Alt-U in 'V' mode, then you should first select the range by pressing 1 and 2 on the range boundaries.



Alt-R

Generate a tile frequency report by scanning all maps in directory.  Use in 'V' mode only.



F12

Screen capture.  Saves image as a *.PCX file, starting as file name CAPTxxx.PCX and incrementing by 1 each time F12 is pressed.



ESC

Quit


Top



Sector Effector Reference Guide


SE 0 Rotate Sector

Used to rotate a sector around a pivot point.


Hitag:  Set equal to Hitag of SE 1 as pivot point for sector.

Sector Lotag: none


Angle: Up = Rotate all points around SE 1.  Down = Rotate sector around SE 1

Shade: none


Palette: none


Comments : If Relative alignment is set on the floor (the R key) then all sprites and actors on the floor will rotate with the sector.




SE 1 Pivot for Rotate SE 0

Used as a pivot point for Sector Effector 0 to rotate a sector around


Hitag: Set equal to Hitag of all SE 0 to rotate

Sector Lotag: none


Angle: Up = Rotate clockwise. Down = Rotate counter-clockwise

Shade: none


Palette: none


Comments:        




SE 2 Earthquake

Used to set off an earthquake.  During the earthquake, the screen will shake for about 4 seconds.  The sector will move in the direction that the SE sprite is pointing.  If there is a slope, then it will rise during the earthquake.


Hitag: none

Sector Lotag: none


Angle: Direction to move sector during earthquake

Shade: none


Palette: none


Comments: Must activate with Masterswitch.  If there is a slope, then it will be made flat at pre-map and raised during the earthquake to a maximum height of 4 clicks.




SE 3 Random lights after shot out

Used to create lighting effect when lights are shot out.  It will also set the color of light when the light is on.  Make the sector shade dark when the light is out and make the SE sprite shade bright when the light is on.


Hitag: Set equal to Wall Lotag with graphic of Light or Set equal to Ceiling Hitag with graphic of Light.

Sector Lotag: none


Angle: none

Shade: Set to brightness when light is on, set sector brightness to when light is off .


Palette: Set to palette lookup number when light is on


Comments: Can be used with SE-12 to be turned on and off with a light switch until the lights are shot out.  The light's color is taken from the SE sprite's Palette when the light is on, and the sector's palette when the light is off.  Default is no color (eg palette=0). Both the SE sprite and the sector can have different palettes.




SE 4 Random Lights

Used to make sector randomly flash in brightness.  It will also set the color of  light when the light is on.  Make the sector shade dark when the light is off and make the SE sprite shade bright when the light is on.


Hitag: Set for Random Flash number

Sector Lotag: none


Angle: none

Shade: Set to brightness when light is on, set sector brightness to when light is off.


Palette: Set to when light is on


Comments: Can not be used with SE-12 to be turned on and off with a light switch.  The light's color is taken from the SE sprite's palette when the light is on, and the sector's palette when the light is off.  Default is no color (e.g. palette=0).  Both the SE sprite and the sector can have different palettes.





SE 6 Subway Engine

Used as the Engine for a Subway.  Use with SE-14 for multiple subway cars.  Must be used with Locator Sprite to set track.


Hitag: Set equal to Locator Lotag for starting position

Sector Lotag: Set equal to 31 to have sectors within sectors for your cars.  Every sector within the car must have the 31 tag.

Sector Hitag: All sectors within Car sector must be equal


Angle: Set for direction of Subway

Shade: none


Palette: none


Comments: Set relative alignment on sector floor (R key) to make sprites move. If a Locator has a Hitag of 1, then the subway will stop at that locator for 5 seconds then continue.




SE 7 Transport/Water

Used as a Teleporter and Water Effect


Hitag: Set equal to one other SE-7 to Transport to

Sector Lotag:  0 = Teleporter.  1 = On top of water.  2 = Underwater


Angle: none

Shade: none


Palette: 0 = Water.  8 = Green Slime


Comments: If the Sector Effector Sprite is off the floor, then you will only teleport when Duke's waist is at the same height as the sprite and in the same sector.  When  using with Sector Lotag 1 and 2 as water, the two sectors must be exactly the same  size or you will teleport to death.




SE 8 Up open Door Lights

Used to light up a room when a door is opened.


Hitag: Set equal to all other SE-8 used together

Sector Lotag: Use with any that raises the ceiling (e.g. Sector Lotag 20)


Angle: none

Shade: Set to brightness when light is on, set sector brightness to when light is off.


Palette: none


Comments: At least one SE-8 with equal Hitag must be in a sector in which the ceiling raises




SE 9 Down Open Door Lights

Used to light up a room when a light comes down from the ceiling


Hitag: Set equal to all other SE-9 used together

Sector Lotag: Use with any that lowers to floor (e.g. Sector Lotag 21)


Angle: none

Shade: Set to brightness when light is on, set sector brightness to when light is off


Palette: none


Comments: At least one SE-8 with equal Hitag must be in a sector in which the floor rises



SE 10 Door Auto Close

Used to automatically close a door after a set delay


Hitag: Delay until door closes (e.g. 128 equals 4 seconds)

Sector Lotag: Use with all door Sector Lotags


Angle: none

Shade: none


Palette: none


Comments:




SE 11 Rotate Sector Door

Used as a door that rotates 90 degrees when activated


Hitag: none

Sector Lotag: 23


Angle: none

Shade: none


Palette: 0 = Clockwise.  1 = Counter-clockwise


Comments: Will also activate other SE-11 with equal Hitag values




SE 12 Light Switch

Used to light up a sector when activated with a switch


Hitag: Set equal to all other SE-12 used together

Sector Lotag: none


Angle: none

Shade: Set to brightness when light is on, set sector brightness to when light is off


Palette: Set to when lights are on


Comments:  The light's color is taken from the SE sprite's palette when the light is on, and the sector's palette when the light is off.  Default is no color (e.g. palette = 0).  Both the SE sprite and the sector can have different palettes






SE 13 C-9 Explosive

Used to blow apart the ceiling and floor of a sector to create holes in walls


Hitag: Set equal to SEENINE, OOZCAN, or CRACK sprites to activate

Sector Lotag: none


Angle: Up = both ceiling and floor come together at pre-map. Down = only the ceiling or the floor matches the height with the SE sprite depending on which one is closest.


Shade: none

Palette: none


Comments: Can be activated by a Masterswitch with equal Hitags. If the ceiling has a Sky texture without Parallax set, then the tile will be replaced at pre-map with the closest non-sky texture.  When it explodes, the sky will  change to Parallax.




SE 14 Subway Car

Used as the car for a Subway.  Use with SE-6 for Subway Engine.  Must be used with Locator Sprite to set track.

       

Hitag: Set equal to Locator Lotag for starting position

Sector Lotag: none


Sector Hitag: All sectors withing Car sector must be equal

Angle: Set for direction of Subway


Shade: none

Palette: none



Comments: Set relative alignment on sector floor (R key) to make sprites move. If a Locator has a Hitag of 1, then the Subway will stop at that Locator for 5 seconds then continue.




SE 15 Slide Door

Used as a door that slides when opened


Hitag: Set equal to other doors to be opened at the same time

Sector Lotag: 25


Angle: Set to direction when door is closed

Shade: none


Palette: none


Comments: Speed sprite sets distance to door to open. Use MusicSFX sprite for sound.




SE 17  Elevator Transport

Used as an Elevator that transports from one elevator shaft to another to simulate going straight up from one floor to another.


Hitag: Equal to one other SE-17

Sector Lotag: 15

Sector Hitag: 0 = Bottom Floor.  1 = Top Floor.


Angle: none

Shade: Darkest shade of the two SE-17 with equal Hitag is the starting floor for the elevator.  Make the shade at least 30 units dark.


Palette: none


Comments: Top and Bottom floors must be physically built at proper height difference to work properly.  Both Elevators must be exactly the same size.




SE 19 Shot Touchplate Ceiling Down

Used to close ceiling when a shot or explosion hits within the sector.


Hitag: Equal to others to activate at the same time

Sector Lotag: none


Angle: none

Shade: none

Palette: none



Comments: Does not check to see when a shot or object passes through the  sector without hitting. Use MusicAndSFX sprite for sound




SE 20 Bridge

Used to stretch a sector when activated


Hitag: none

Sector Lotag: 27


Angle: Set to direction to stretch sector

Shade: none

Palette: none


Comments: Set relative alignment (R key) on sector to move floor.  Use speed sprite for distance




SE 21 Drop Floor

Used to make a floor or ceiling drop to the height of the SE sprite when activated by a Masterswitch

Hitag: Set equal to others that activate at same time

Sector Lotag: 28


Angle: Up = Drop Ceiling. Down = Drop Floor

Shade: none

Palette: none


Comments: Floor or ceiling matches height of SE sprite at pre-map then drops to set position when activated.  To do opposite, the SE sprite height must be put into sector




SE 22 Prong

Used as Door inside Teeth Prongs


Hitag: Set equal to Hitag of Sector Lotagged 29

Sector Lotag: 0, Outside Sector Lotag of 29


Angle: none

Shade: none

Palette: none


Comments: This Effector was not tested in the game, so use it at your own risk. It may cause problems in multi-play.  See _SE.MAP for usage.



SE 24 Conveyor Belt

Used to move sprites along the floor like a conveyor belt


Hitag: Set equal to a switch to turn on and off

Sector Lotag: none


Angle: Set to direction to move sprites

Shade: none

Palette: none


Comments: Set relative alignment (R key) on sector floor to move sprites.  Set speed sprite equal to rate of movement




SE 25 Engine Piston

Used as a Piston that only goes up and down


Hitag: none

Sector Lotag: none


Angle: none

Shade: none

Palette: none


Comments: Put SE sprite height to starting position of Piston.  Speed sprite equals rate of movement.




SE 27 Camera for Playback

Used as as camera position to view playback of game Demos


Hitag: Set to maximum distance for the camera to view the action of other players (e.g. 2048 equals largest grid in Build)

Sector Lotag: none


Angle: none

Shade: none

Palette: none


Comments: Camera does not always work well with extreme heights




SE 29: Floating Sector

Used to make sector float like water or waves


Hitag: Set to starting height of sector (0-2047)

Sector Lotag: none


Angle: none

Shade: none

Palette: none


Comments:  Use speed sprite to set height of wave. To use as a wave, the sector must only be made of 4 lines.  Set one wall as first wall (ALT-F) next to another sector with a SE-29 sprite in it to create a wave.




SE 30 Two-way train

Used as a train car that only goes back and forth from point A to point B


Hitag: Set equal to a switch to activate

Sector Lotag: 31


Angle: Set to direction of front of car

Shade: none

Palette: none


Comments: Use with 2 Locator sprites to define track. Activator with equal hitag activates when car stops at point A. Activator with equal hitag+1 activates when car stops at point B




SE 31 Floor Rise

Used to rise or lower sector floor when activated by an Activator or Masterswitch

Hitag: none

Sector Lotag: none


Angle: Up = Start sector height equal to SE sprite height at pre-map. Down = Rise sector to SE sprite height when activated.


Shade: none

Palette: none


Comments: Use speed to set rate of rise. Use MusicSFX sprite for sound.




SE 32 Ceiling Fall

Used to rise or lower sector Ceiling when activated by an Activator or Masterswitch


Hitag: none

Sector Lotag: none


Angle: Up = Rise sector to SE sprite height when activated. Down = Start sector height equal to SE sprite height at pre-map

Shade: none

Palette: none


Comments: Use speed to set rate of rise. Use MusicSFX sprite for sound




SE 33 Spawn Earthquake Jibs

Used to spawn pieces of metal and rock from SE sprite during an Earthquake


Hitag: none

Sector Lotag: none


Angle: none

Shade: none

Palette: none


Comments: Jibs will be spawned whenever an Earthquake occurs anywhere on the map




SE 36 Spawn Shot

Used to spawn a shot every five seconds when activated by a Masterswitch


Hitag: none

Sector Lotag: none


Angle: Set to direction to shoot

Shade: none

Palette: none


Comments: Once activated, it will never stop shooting. Use speed sprite to set object to shoot:

2556: Shrink Ray

2605: RPG

1650: Mortar

1625: Trooper Laser

1636: Lizman Spit


Top



Special Sprite Reference Guide





Sector Effector: Sprite #1

The Sector Effector Sprite is used to create game effects and manipulate sector attributes.  The SE is the main tool to create effects such as Earthquakes, Explosions, Lighting Effects, etc.  Place a Sprite #1 in the sector to effect.


Lotag: Lots.  See the Sector Effector Reference Guide for more specific details on all the effects you can do.


Hitag: Set equal to other SE Sprites with same Lotag to activate together.  Certain effects require other sprites to have this hitag as well.




Activator: Sprite #2

The Activator Sprite is used with Switches or the Touchplate sprit to activate the Sector Lotag function or any Sector Effectors within the Sector.


Lotag: Set equal to a Switch lotag or a Touchplate lotag.

Hitag: none




Touchplate:  Sprite #3

The Touchplate will activate an Activator or a Masterswitch Sprite when the player walks on the sector floor.


Lotag: Set equal to an Activator or a Masterswitch lotag

Hitag: 0 = Activate touchplate everytime player walks on the sector. Greater  than 0 = The touchplate will only activate this many times when the player walks on the sector, then never again.




Activator Locked: Sprite #4

The Activator Locked sprite will lock the sector's lotag function so it can not be activated by the player until it is unlocked with a switch.


Lotag: Set equal to a Switch's lotag to be toggled locked and unlocked.

Hitag: none.




Music And SFX: Sprite #5

The Music and Sound Effects Sprite can be used in 3 ways.


1. Activation Sound: When used in a sector with a Lotag, it will play a sound when the sector's lotag function is activated.

Lotag: Sound number

Hitag: none


2. Ambiente Sound:  When used in a sector with no lotag, it will play an ambiente sound.

Lotag : Ambiente sound

Hitag : Max distance the sound can be heard. 1024 equals the  largest grid square size in build.  This number could reach 10000 for larger areas.


3. Echo Effect: When used in a sector with no lotag, it will cause all sounds to have an echo effect.

Lotag: 1000 + the amount of echo from 0-255

Hitag: Max distance the sound can be heard. 1024 equals the largest grid square size in build.  This number could reach 10000 for larger areas.




Locators: Sprite #6

The locator sprite can be used to define a track for a Subway (SE-6 & SE-14) or to define a path for PigCop Recon Cars but not both in the same map. Plus you can only have a single path defined in a map.


Lotag: Set in an increasing order starting from 0 with no gaps in the count for all the Locator Sprites in the map.  When the Subway or PigCop Recon Car reaches the last Locator sprite, it will loop back to the Locator sprite with a lotag of 0.


Hitag: If set to 1 (or any number greater than 0) the Subway will stop at the Locator sprite location for 5 seconds, then continue to the next Locator. The PigCop Recon Car is not affected.




Cycler: Sprite #7

The Cycler Sprite is used to make the Sector Floor, Walls, and Ceiling pulsate in brightness.


Lotag: Set the offset of how bright it will start.

Hitag: none

Palette: Set to a color if needed.


Shade: Set to how bright the sector will get.  Set the sector brightness to how dark it will get.




Masterswitch: Sprite #8

The Master Switch Sprite is used to activate a Sector Lotag or a Sector Effector after a time delay.  This can only be acitvated by a Touchplate sprite.


Lotag: Set equal to a Touchplate Sprite Lotag to be activated by.

Hitag: Set for time delay until activation of Sector Tag or Sector Effector Sprite.




Respawn: Sprite #9

The Respawn Sprite is used to Teleport in Actors and Items when activated by a Touchplate Sprite.


Lotag: Set equal to Touchplate Sprite Lotag to be activated by.

Hitag: Set equal to any Sprite Number that has a name with it in Build or Editart.




GPSpeed: Sprite #10

The GPSpeed Sprite is used to define the rate of movement for such things as Sector Tag 20 (Ceiling Door) and Sector Effector 0 (Rotate Sector.)  Can be used in certain cases to determine the length of movement as well (Sliding Doors.)


Lotag: Set to rate.

Hitag: none




Access Switch: Sprite #130

The Access Switch is used to unlock or activate something when used with a Key Card.  Use the Palette on both Access Switch and Access Card to define what card to use (0 = Blue, 21 = Red, and 23 = Yellow.)


Lotag: Set equal to Activator or Activator-Locked Sprite Lotag to use.

Hitag: Set to play sound when activated (212 is common.)




Switch: Sprite #132 and all other Switches

The Switch is used to unlock or activate something when activated by the space key.


Lotag: Set equal to Activator or Activator-Locked Sprite Lotag to use.

Hitag: Set to play sound when activated.


Palette: 0 = Default,  1 = Multi-play only




Nuke Button: Sprite #142

The Nuke Button is used to end a level and goto the stat screen.  It can also be used to go to a bonus level.


Lotag: Set to 32767 to end a level and go to stat screen.  Set to 1-11 to go to a bonus level in the same volume.

Hitag: none


Palette: 0 = Default, 14 = Bonus Level




Multiswitch: Sprite #146

The Multi-Switch can activate 4 multiple Activator Sprites. It uses 4 consecutive Lotags to activate each Activator.  When first switched, it activates Activator Sprites A and D.  The next time it activates Activator Sprites A and B, then B and C, C and D, then back to A and D again.


Lotag: Set equal to Activator Sprites A, B+1, C+2, and D+3.

Hitag :none





Doortile 5: Tile #150 and all other Doortiles

The Door Tiles can be used to activate Activator Sprites when the player presses upon the wall.


Wall Lotag: Set Equal to Activator Sprite Lotag to activate.

Wall Hitag: none




Dipswitch: Sprite #162

The Dip Switch is used as a combination switch with an Activator or Activator Locked Sprite.  All Dip Switches with equal Lotags will be used for the combination.


Lotag: Set equal to Activator or Activator Locked Sprite Lotag.

Hitag: 0 = Set to off, 1 = Set to on



View Screen: Sprite #502

The View Screen is used to view through Cameras (Sprite #621) placed around the map.  It will view through all Cameras with equal Lotags.


Lotag: none

Hitag: Set equal to Camera1 Sprites #621.




Crack1: Sprite #546 and all other Cracks

The Crack Sprite is used to activate explosions (SE-13) and other effects.


Lotag: none

Hitag : Set equal to SE 13 Hitag to Activate.  See the Explosions tutorial for more details.


Palette: Set to 1 for Multi-Play mode only




Mirror: Tile #560

The Mirror tile is used to place a mirror in the map.  For more details, check out the mirror Tutorial.




Camera1: Sprite #621

The Camera Sprite is used to be able to view through using the ViewScreen Sprite.


Lotag: Set equal to the ViewScreen Sprite Hitag to be viewed through.        

Hitag: Set to amount of turning radius.  0 equals none, 2048 equals 360 degrees.  See the Camera tutorial for more info


Shade: Set to angle of facing down.

Angle: Set to direction to point.



Cranepole:  Sprite #1221

The Cranepole sprite is used as a pickup or destination point for the Crane sprite.


Lotag: None

Hitag: Set equal to the Crane sprite Hitag

Attributes:  Set to blocking


Crane:  Sprite #1222

       The Crane sprite is used as a starting point and drop zone for Cranes.


       Lotag:  None

       Hitag: Set equal to the Cranepole sprite Hitag

       Angle:  Set to direction of travel towards Cranepole Sprite



Can With Something: Sprite #1232

The Can With Something is used to spawn an object when it is shot.


Lotag: Set to Sprite number with a name in Build or EditArt to spawn when shot.




SeeNine: Sprite #1247

The SeeNine Sprite is used to activate Explosions (SE-13) and other effects.  It can also be used to timedelay explosions.


Lotag: Set equal to time delay until explosion.

Hitag: Set equal to SE-13 Hitag to activate.


Size: If the Sprite is shrunk in the x direction, then the sprite will not be seen in the game, but the explosion will.




FemPic1: Sprite #1280

The Fem Pics are used to activate the Respawn Sprite to spawn in any Sprite with a name in Build or Editart.


Lotag: none

Hitag: Set equal to Respawn sprite to activate




APlayer: Sprite #1405

The APlayer Sprite is used to define where all multi-players will start in the map.  You must have a minimum of 7 sprites in the map for an 8 player multi-play game and a minimum of 7 sprites in the map for an 8 player Co-op game



Lotag: 0 = Multi-Player start position (Default). 1 = Co-op Player start position.


Top


 

Sector Tag Reference Guide



ST 1 Water

Used as Water Effect when the player walks on sector.  If used with a SE-7 (Transport) sprite, then it will move the player to the underwater sector with ST 2.


SE 7 Hitag: Set equal to one other SE-7 to Transport to.

Sector Lotag: 0 = Teleporter,  1 = On top of water, 2 = Underwater


Angle: none

Shade: none

Palette: 0 = Water, 8 = Green Slime


Comments: When using with Sector Lotag 1 and 2 as water, the two sectors must be exactly the same size or you will teleport to death.




ST 2  Underwater

Used as Underwater Effect when the player moves in sector.  If used with a SE-7 (Transport) sprite, then it will move the player to the above water sector with ST-1


SE-7 Hitag: Set equal to one other SE-7 to Transport to.

Sector Lotag: 0 = Teleporter, 1 = On top of water, 2 = Underwater


Angle: none

Shade: none

Palette: 0 = Water, 8 = Green Slime


Comments: When using with Sector Lotag 1 and 2 as water, the two sectors  must be exactly the same size or you will teleport to death.




ST 9  Star Trek Doors

Doors that spread apart when opened like on Star Trek.  Note that the wall tile on the doors will squish when opened.


Comments: Use MusicAndSFX Sprite Lotag for door open sound. Use Speed Sprite Lotag for opening speed.




ST 15  Elevator Transport

Used as an Elevator that transports from one elevator shaft to another to simulate going staight up from one floor to another.


SE-17 Hitag: Set equal to one other SE-17

Sector Lotag: 15

Sector Hitag: 0 = Bottom Floor, 1 = Top Floor


Angle: none

Shade: Darkest shade of the two SE-17 with equal Hitag is the starting floor for the elevator.  Set the shade to at least 30 clicks.  Check in 2d mode by hitting ALT-TAB on the SE 17 to be sure, or use ['] - [S] in 3d mode on the sprite.


Palette: none

Comments: Maximum of 2 floors.  Sounds are set automatically.  Top and Bottom floors must be physically built at proper height difference to work properly. Both Elevators must be exactly the same size.  Put the SE-17 sprite in the same grid location on both elevator cars.




ST 16  Elevator Platform Down

Used to Lower the sector floor from current height down to the next sector of lower height.  On next activation, the sector floor will rise up to the next sector floor.


Comments: Use MusicAndSFX sprite lotag for sound.

Lotag = start sound

Hitag = stop sound

Use Speed sprite lotag for rate of movement.




ST 17  Elevator Platform Up

Used to raise the sector floor from current height up to the next sector of greater height.  On next activation, the sector floor will drop down to the next sector.


Comments: Use MusicAndSFX sprite lotag for sound.

Lotag = start sound

Hitag = stop sound

Use Speed sprite lotag for rate of movement.




ST 18 Elevator Down

Used to lower the sector floor and ceiling from current height down to the next sector of lesser height.  On next activation, the sector floor and ceiling will rise up to the next sector.


Comments: Use MusicAndSFX sprite lotag for sound.

Lotag = start sound

Hitag = stop sound

Use Speed sprite lotag for rate of movement.




ST 19  Elevator Up

Used to raise the sector floor and ceiling from current height up to the next sector of greater height.  On next activation, the sector floor and ceiling will drop down to the next sector.


Comments: Use MusicAndSFX sprite lotag for sound.

Lotag = start sound                        

Hitag = stop sound

Use Speed sprite lotag for rate of movement.




ST 20  Ceiling Door

Used to raise and the lower the sector ceiling from level with the sector floor up to the height of the next sector ceiling height, basically a Doom door.


Comments: Use MusicAndSFX sprite lotag for open and close sound. Use Speed sprite lotag for rate of movement.  Use SE-10 to make the  door auto-close




ST 21  Floor Door

Used to raise and lower the sector floor from level with the sector ceiling down to the height of the next sector floor height.


Comments: Use MusicAndSFX sprite lotag for open and close sound. Use Speed sprite lotag for rate of movement.  Use SE-10 to make the  door auto-close.




ST 22  Split Door

Used to raise and lower the sector floor and ceiling from level with the next sector floor and ceiling, then together until the floor and ceiling match height.


Comments: Use MusicAndSFX sprite lotag for open and close sound. Use Speed sprite lotag for rate of movement.  Use SE-10 to make the door auto-close.




ST 23  Swing Door

Used as doors that swing the sector 90 degrees when activated.

Note that you can activate multiple ST 23 by giving the SE-11 sprites equal hitag values.


SE-11 Hitag: Set equal to all other SE-11 doors to open together

SE-11 Angle: Up = counter-clockwise,  Down = clockwise


Shade: none

Palette: none


Comments: Sector will also rise to height of SE-11 Sprite if it is off the floor. Use MusicAndSFX sprite lotag and hitag to door open and close sound, respectively.




ST 25  Slide Door

Used as a door that slides when opened


SE-15 Hitag: Set equal to all other doors to be opened at the same time

SE-15 Angle: Set to direction when door is closed.


Shade: none

Palette: none


Comments: Speed sprite sets distance for door to open. Use MusicAndSFX sprite for sound




ST 26  Split Star Trek Door

Used to do the effects of both ST 9 (Star Trek Door) and ST 22 (Split Door.)  Doors will spread apart when opened like on Star Trek.  Not that the wall tile on the doors will squisk when opened.  Will also raise and lower the sector floor and ceiling from level with the next sector floor and ceiling, then together until the floor and ceiling match height.


Comments: Use MusicAndSFX sprite lotag for open and close sound.  Use Speed sprite lotag for rate of movement.  Use SE-10 to make the door auto-close.




ST 27  Bridge

Used to stretch a sector when activated.


Sector Lotag: 27

Angle: Set to direction to stretch sector


Shade: none

Palette: none

Comments: Set relative alignment (R key) on sector to move floor. Use Speed sprite for distance.




ST 28  Drop Floor

Used to make a floor or ceiling drop to the height of the SE sprite when activated by a Masterswitch


Hitag: Set equal to others that activate at the same time

Sector Lotag: 28

       

Angle: Up = Drop Ceiling, Down = Drop Floor

Shade: none

Palette: none


Comments: Floor or ceiling matches height of SE sprite at pre-map then drops to set position when activated. To do opposite, the SE sprite must be put into sector.




ST 30  Rotate Rise Door

Used to rotate the sector floor 90 degrees and rise to the height of the SE-0 sprite.  Use SE-1 as the pivot point for the sector.


Comments: Use MusicAndSFX sprite lotag for sound.  Use Speed for rate of turning.  Use SE-0 sprite palette for direction:

Palette 0 = clockwise

Palette 1 = counter-clockwise




ST 31 Two-way train

Used as a train that only goes back and forth from point A to point B


Hitag: Set equal to a switch to activate

Sector Lotag: 31


Angle: Set to direction of front of car

Shade: none

Palette: none


Comments: Use with two locator sprites to define track. Activator with equal hitag activates when car stops at point A. Activator with equal hitag+1 activates when car stops at point B.




ST 10000+  One-time sound

Used to play a sound one time when the player walks on the sector floor.  Tag the sector lotag with 10000+ sound number.




ST 32767  Secret Room

Used to tag the sector as a secret place to be counted at the end of the level stats.




ST 65535   End Level

Used to end the level when the player walks on the sector floor.





Top


 



Tricks And Goodies



To change the palette of a sprite or a sector, point at the object and hit ALT-P in 3D mode.  This is not documented anywhere that I can find.



When loading your own custom images using EditArt, import your graphics using the .GIF format.  They tend to import better.



To find and use the correct Duke3D palette, take a screen shot with EditArt when viewing one of the tiles.  Hit F12 at anytime and a .PCX image of that tile will be created named CAPT000x.PCX.  Load this image using a paint program such as PaintShop Pro and save the palette to your Duke directory.  When making new tiles, edit them with your paint program using the Duke palette, then saving as a .GIF file.  That way, you know exactly what your tile is going to look like.



If you want to load an image using EditArt, but find the palette conversion really messed with the picture, convert the image using a more advanced paint program and the correct Duke palette (see above note.)  I've found the paint programs do a better job of converting the palette to the Duke palette.



Make heavy use of the left-mouse button when editing in 3D mode.  Click and hold on the sprite/tile you want to alter with the left mouse button.  When adjusting floor/ceiling heights or changing their slope, this neat feature will keep that tile active for as long as you hold the button.



To raise multiple sectors' floors or lower their ceilings at the same time, select the group with the Right-ALT key in 2d mode.  Switch over to 3d and raise any one of them.  All will raise by the same amount.



To move multiple sprites or vertices at the same time, draw a box around them using the Right-Shift key.  You can even enter 3d mode with sprites highlighted, and raise/lower them at the same time.



To change the shading of any tile or sprite, point at the image in 3d mode,  hold down ['], and hit [S].  This will let you enter any number, which comes in handy for things like cameras which uses the shade for angles.  Press [F1] in 3d mode to see an entire list of the ['] commands that you can do within Build. There's lots of neat little shortcuts.  Also, hit [F1], [F5] and [F6] in 2d mode for other neat displays.


To replace a tile throughout your map with another tile, go to 3d mode and point at the tile you wish to use, then hit TAB.  Point at the tile you want to be replaced, and hit ALT +C.


To change the visibility of a sector, point at the ceiling or floor in 3d mode, hold down ['], then hit [V].  This setting determines how far Duke can see when in the sector.


You can turn off display of Sector Effectors and Actors (aliens) in 3d mode.  Hold down ['] then hit [W].  This will cycle through All Sprites, No Effectors, No Actors, and finally No Sprites at all.


You can change sprite, sector, and wall hitags/lotags in 3d mode using the ['] key.  Point at the sprite, wall, or sector in 3d mode. Hold down ['].  Hit [H] for Hitag, or hit [T] for lotag.


Top


EditArt Basics


1.  Extract all of the art from the original .GRP file.  Type "kextract duke3d.grp *.art" in your Duke directory.



2.  Run EditArt, it will go in and load all of the tiles (14 to start)



3.  You'll start out on the first tile.  Hit 'V' once and you'll see something very similar to Build when looking at tiles.  Move to the tile you want to edit by using the arrow keys.  Hit Enter on any tile and it will bring you back to the editing screen.  Hit PgUp or PgDn to cycle through the tiles.



4.  To jump to a specific tile, hit 'G' at any time.    The user art starts at tile number 3584.  Jump to this, and you'll see a little User Art tile.



5.  To start a new tile, select one that's empty (3585 sounds good), and hit 'S'.  This will let you enter the X and Y dimensions.



6.  You'll start with a tile that is shaded entirely pink... it's not really pink; it is the masking color, which shows up as invisible during the game.



7.  You probably won't want to do any actual editing in EditArt. It's really a pain in the butt.  I use Paintshop Pro to do all of my editing... it's much easier.  Save all of your files in the .GIF format... EditArt really doesn't like anything else.  Also, save them to your Duke directory.  It makes loading the images in much easier.



8.  The best thing about EditArt is its import capability.  Make a new tile, and size it to match the original image.  Hit 'U', and you'll be presented with a list of image files in your Duke directory.  Select your original, and hit ENTER.  Note... sometimes EditArt will pick up a tile automatically and display it.  If this happens, just hit ESC and you'll see the directory listing.



9.  You'll see your full image, with a white-bordered box flashing around it.  This is the actual size of your new tile, which should match your original image.  Hit ENTER to load that image in.

 


10.  Hit PgUp to select the next tile, it will ask you if you want to save the current tile.  Hit 'Y' and you're done.  Hit ESC then 'Y' in the main editing screen and it will update the corresponding .ART file.  It is pretty standard policy among Duke Builders to put any custom art in TILES014.ART, which begins with tile #3584.    You can distribute this file with your levels (named to something other than TILES014.ART,)  just tell the players to rename any current TILES014.ART as a backup.  Then rename your file to TILES014.ART and they're all set.



11.  Most of the time, EditArt won't correctly import your image's "invisible", or masking color.  If this happens, and your sprite has pink stuff all over it, you need to actually use EditArt to go in and change your tile.  Find your tile, move the little pixel pointer (mouse works here, or the arrow keys) to any one of the pixels representing the color you wish to make masking.  Hit BACKSPACE, which will select the masking color (the palette is down in the lower-right.)  Then hit 'C', which will change all of the pixels matching the pixel color you have pointed-at to the color you have selected from the palette.  To manually select a color, hold down shift and use the arrow keys to move around the palette.



12.  To get the correct Duke palette for programs such as PaintShop Pro, find any original tile and hit F12.  This will create a screenshot named CAPT000.PCX, which you can then load into your Paint program, and save the palette. 




Animation:


   To create animated sprites, place your tiles in sequence someplace in TILES014.ART.  They must be together as a group in order for animation to work.  For example, if you have a four-tile animation sequence, and you've placed the first tile at 3584, the last one must be 3587.  Run EditArt and find the first tile you wish to animate.  The first tile is the only tile which needs to be changed to allow animation.  Leave the others alone. Hit the [-] key to cycle through the different animation options:  NoAnimation, Oscillate, Forwards, and Backwards. 


   Once you've got the animation option you'd like, hit the [+] key to change the number of tiles in the animation sequence.  This number must be one less than the total number of tiles.  Hitting the [-] key here will decrement the number of tiles to animate until it reaches 0.  Once it reaches 0, it will begin to change the animation type again.  In our example here, because we have four tiles, the number must be set at 3. 


    If you want to test the animation out, hit the [A] key on your first tile.  Pressing the [+] and [-] keys will change the animation speed.  Once you have the proper speed set, press [ESC], then [PgUp].  It will ask you if you want to save the current tile.  Hit [Y] to accept, or [N] to cancel.



   That's about all you really need to know to get in and make your own art. I suggest highly that you use a separate paint program to make/edit your tiles.  EditArt just isn't very powerful or friendly.  You must use it to actually load and create the .ART files, but that should be it.  Also, be careful when running EditArt and Build in another DOS box (if you run in Win95)... messing with the tiles can sometimes wreak havoc with Build.



 



Top



Page written by:


Top




Tutorial Pages

       

Bridges

Cameras

Conveyor Belts

Cranes

C-9 Crack Explosions

Doors that Open Via a Switch

Floor, Ceiling, and Split Doors

Elevator Transport

Earthquakes

Glass Walls

Light Switches

Mirrors

Pig Cop Recon Cars

Platform Elevators

Random Lights After Shot Out

Rotating Sectors

Sliding Doors

Star Trek Doors (Split and Normal)

Subways

Swinging Doors

Teleporters

Two-Way Trains

Up Open Door Lights

Water Sectors


Plutonium Pak Only


Lightning

Incremental Sector Raise/Lower


Using Build


Copying Sectors

EditArt Basics

Sectors Over Sectors



Top



Sound Listing


Compiled by Shane King aka Scatt Man (scattman@ )


FORMAT OF THIS LIST


1 : sound number. Used in build

2 : sound name. This is the name that Duke Nukem uses internally to reference the sound

3 : .voc file name.  The .voc files are stored in the duke3d.grp file

4 : min frequency adjustment

5 : max frequency adjustment

    A random value between these two limits is chosen each time the sound is played

6 : priority  If there are too many sounds to be played at once the higher (I think) priority sounds get played

7 : attributes

   -  bit 0 (%) Repeat

        This sound will be played over and over

   -  bit 1 ($) Ambient Sound

        This sound can be used as an ambient sound

   -  bit 2 (#) Duke Talk

        This sound will follow the player

   -  bit 3 (@) Adult Mode

        This sound will only be played if adult mode is on

   -  bit 4 (!) Random Ambient Sound

        This sound can be used as a random ambient sound

8 : volume adjustment.  Used to make the sound louder or softer

9 : sample rate (Khz).  Multi means the .voc file has multiple blocks  

10 : description of sound


A + in any section denotes that the section is not defined, hence following

sections are also not defined


-

slim_pain slimpn

0

0

3

-----

0

+


0

kick_hit kickhit

0

0

4

-----

0

5.988

Duke's Mighty foot hits

1

pistol_ricochet ricochet

0

0

0

-----

4096

5.988

Pistol ricochet of solid object

2

pistol_bodyhit bulithit

0

0

0

-----

0

5.988

A bullit hits somebody

3

pistol_fire pistol

-64

0

254

-----

0

5.988

Pistol firing

4

eject_clip clipout

0

0

3

-----

0

5.988

Duke ejects a used clip

5

insert_clip clipin

512

512

3

-----

0

5.988

Duke inserts a new clip

6

chaingun_fire chaingun

-204

-204

254

-----

512

10.989

Chaingun firing

7

rpg_shoot rpgfire

-32

0

4

-----

0

5.988

RPG Firing

8

poolballhit poolbal1

0

0

0

-----

0

8

A poolball is hit

9

rpg_explode bombexpl

-1024

1024

254

-----

0

multi

A RPG rocket explodes

10

cat_fire catfire

512

768

4

-----

0

5.988

Freeze Ray Firing

11

shrinker_fire shrinker

-512

0

4

-----

0

8

Shrinker Ray Firing

12

actor_shrinking shrink

0

0

2

-----

0

8

Somebody being shrunk

13

pipebomb_bounce pbombbnc

0

0

2

-----

6144

5.988

Tink of a pipe bomb bouncing

14

pipebomb_explode bombexpl

-512

0

128

-----

0

multi

A pipe bomb being detonated

15

lasertrip_onwall lsrbmbpt

0

0

3

-----

0

5.988

A laser trip bomb being placed on a wall

16

lasertrip_arming lsrbmbwn

0

0

3

-----

0

5.988

Beeeping of a laser trip bomb about to explode

17

lasertrip_explode bombexpl

-512

0

4

-----

0

multi

A laser trip bomb exploding

18

vent_bust ventbust

-32

32

2

-----

0

5.988

Breaking a vent or fan

19

glass_breaking glass

-412

0

3

-----

8192

8

Glass window being smashed

20

glass_heavybreak glashevy

-412

0

3

-----

8192

11.025

Glass items being broken

21

short_circuit shorted

0

0

0

-----

6500

8

Duke gets an electric shock

22

item_splash splash

0

0

2

-----

0

multi

Item dropped into water

23

duke_breathing hlminhal

0

0

255

--#--

0

+


24

duke_exhaling hlmexhal

0

0

255

--#--

0

+


25

duke_gasp gasp

0

0

255

--#--

0

8

Duke catching breath after being under water

26

slim_recog slirec06

0

0

3

-----

0

11.025

Green slime sights Duke

27

endseqvol3snd1 kickhead

0

0

254

-----

0

11.025

Duke kicks bosses head at goal

28

duke_urinate pissing

0

0

4

-----

0

5.988

Duke going to the toilet

29

endseqvol3snd2 gmeovr05

0

0

254

-----

0

8

Duke "Game over"

30

endseqvol3snd3 cheer

0

0

254

-----

0

11.025

The crowd cheering Duke

31

+







32

duke_passwind +






33

duke_crack waitin03

0

0

255

--#--

0

8

Duke "What are you waiting for, Christmas?"

34

slim_attack slimat

0

0

3

-----

0

11.025

Green Slime Attacking

35

somethinghitforce teleport

0

0

2

-----

8192

5.988

Something hitting a force field

36

duke_drinking drink18

-128

128

2

--#--

0

11.025

Duke drinking water

37

duke_killed1 damn03

0

0

255

-@#--

0

8

Duke "Damn"

38

duke_grunt exert

0

0

2

--#--

0

11.025

Duke - Uuugh

39

duke_hartbeat hartbeat

0

0

0

-----

0

5.988

Duke's heart beating

40

duke_onwater wetfeet

0

0

4

-----

0

11.025

Duke splashing through water

41

duke_dead dmdeath

-64

64

255

--#--

0

8

Duke's death scream

42

duke_land land02

0

0

2

-----

0

8

Duke Landing on the ground (Not hurt)

43

duke_walkinducts ductwlk

-64

128

2

-----

0

multi

Duke walking in air ducts

44

duke_glad +






45

duke_yes yes

0

0

255

--#--

0

+


46

duke_hehe +






47

duke_shucks +






48

duke_underwater scuba

0

0

2

-----

0

multi

Duke underwater with scuba

49

duke_jetpack_on jetpakon

0

0

4

-----

0

8

Duke turning jet pack on

50

duke_jetpack_idle jetpaki

0

0

1

-----

0

8

Duke with jet pack on

51

duke_jetpack_off jetpakof

0

0

2

-----

0

8

Duke turning jet pack off

52

liztroop_growl +






53

liztroop_talk1 +






54

liztroop_talk2 +






55

liztroop_talk3 +






56

duketalktoboss duknuk14

0

0

255

-@#--

0

8

Duke "I'm Duke Nukem and I'm coming to get the rest of you alien bastards"

57

lizcapt_growl +






58

lizcapt_talk1 +






59

lizcapt_talk2 +






60

lizcapt_talk3 +






61

lizard_beg chokn12

0

0

3

-----

0

multi

Alien shaking head when not quite dead

62

lizard_pain +






63

lizard_death +






64

lizard_spit lizspit

0

0

0

-----

0

8

Lizard spitting at Duke

65

drone1_hissrattle +






66

drone1_hissscreech +






67

duke_tip2 shake2a

0

0

255

--#--

0

8

Duke "Shake it baby"

68

flesh_burning fire09

-256

0

0

-----

6100

multi

Fire crackling

69

squished squish

0

0

3

-----

0

8

Someone is squished

70

teleporter teleport

0

0

0

-----

0

5.988

A teleporter is used

71

elevator_on gbelev01

0

0

0

-----

0

8

Elevator is used

72

duke_killed3 thsuk13a

0

0

255

-@#--

0

8

Duke "Uugh, this sucks"

73

elevator_off gbelev02

0

0

0

-----

0

8

Elevator stopping

74

door_operate1 slidoor

-256

0

0

-----

0

11.025

Metalic Sliding Door

75

subway subway

0

0

0

-----

0

multi

A subway train

76

switch_on switch

0

0

0

-----

0

multi

Click of a switch being used

77

fan fan

0

0

0

-----

0

+


78

duke_getweapon3 groovy02

0

0

255

--#--

0

8

Duke "Groovy"

79

flush_toilet flush

0

0

3

---$-

0

multi

Toilet being flushed

80

hover_craft hover

0

0

0

-----

0

+


81

earthquake quake

0

0

0

-----

0

multi

Earthquake rumble

82

intruder_alert alert

0

0

0

-----

0

5.988

Warning alarm

83

end_of_level_warn monitor

0

0

0

-----

0

8

End of level warning

84

engine_operating onboard

0

0

0

---$-

0

multi

Low pitched grind of engine operation

85

reactor_on reactor

0

0

0

---$-

0

multi

High pitched hum of reactor

86

computer_ambience compamb

0

0

0

---$-

0

11.025

Computer operation sound

87

gears_grinding geargrnd

0

0

0

---$-

0

5.988

Turning gears grinding together

88

bubble_ambience bubblamb

-256

0

0

---$-

0

multi

Water bubbling

89

machine_ambience machamb

0

0

0

---$-

0

11.025

Thumping of machine operating

90

sewer_ambience drip3

0

0

0

-----

0

11.025

Drip into water

91

wind_ambience wind54

0

0

0

---$-

0

multi

Gust of wind

92

something_dripping drip3

0

0

0

-----

9000

11.025

Loud drip

93

steam_hissing steamhis

0

0

0

----%

8192

8

Steam hissing from pipe or pot

94

theater_breath +






95

bar_music barmusic

0

0

254

---$%

0

11.025

Dance music in bar (as in bar in e1l2)

96

bos1_roam bos1rm

0

0

3

-----

0

11.025

Boss 1 screaming

97

bos1_recog bos1rg

0

0

5

-----

0

8

Boss 1 sees Duke

98

bos1_attack1 chaingun

0

0

3

-----

0

10.989

Boss 1 using chaingun

99

bos1_pain bos1pn

0

0

3

-----

0

8

Boss 1 in pain

100

bos1_dying bos1dy

0

0

3

-----

0

8

Boss 1 biting the dust

101

bos2_roam b2atk01

0

0

3

-----

0

11.025

Boss 2 screaming

102

bos2_recog b2rec03

0

0

3

-----

0

11.025

Boss 2 sees Duke

103

bos2_attack b2atk02

0

0

3

-----

0

11.025

High pitched scream as boss 2 attacks

104

bos2_pain b2pain03

0

0

3

-----

0

11.025

Boss 2 in pain

105

bos2_dying b2die03

0

0

3

-----

0

11.025

Boss 2 dying

106

getatomichealth teleport

2048

2048

255

-----

0

5.988

Sound when Duke picks up a health atom

107

duke_getweapon2 getsom1a

0

0

255

--#--

0

8

Duke "Come get some"

108

bos3_dying b3die03g

0

0

3

-----

0

11.025

Boss 3 Dying

109

shotgun_fire shotgun7

0

512

254

-----

0

11.025

16bit, Shotgun blast

110

pred_roam roam06

0

0

3

-----

0

multi

Trooper sees Duke

111

pred_recog predrg

0

0

3

-----

0

multi

Trooper sees Duke

112

pred_attack gblasr01

256

256

3

-----

7680

8

Trooper fires at Duke

113

pred_pain predpn

200

500

3

-----

0

8

Trooper screaming in pain

114

pred_dying preddy

0

400

3

-----

0

multi

Trooper dying

115

capt_roam predrm

0

200

3

-----

0

multi

Lizard Captian roaming

116

capt_attack chaingun

0

0

3

-----

-200

10.989

Lizard Captain attacking with chaingun

117

capt_recog predrg

-400

0

3

-----

0

multi

Lizard Captain sees player

118

capt_pain predpn

-200

100

3

-----

0

8

Lizard Captain in pain

119

capt_dying preddy

-200

100

3

-----

0

multi

Lizard Captain dies

120

pig_roam roam29

-200

400

3

-----

0

multi

Pig Cop roaming

121

pig_recog pigrg

-200

400

3

-----

0

8

Pig Cop sees Duke

122

pig_attack shotgun7

-256

256

4

-----

0

11.025

16bit, Pig Cop fires shotgun

123

pig_pain pigpn

100

800

3

-----

0

8

Pig Cop grunts in pain

124

pig_dying pigdy

-800

100

3

-----

0

8

Pig Cop death squeel

125

reco_roam jetpaki

0

0

3

-----

0

8

Recon Car Moving

126

reco_recog pigrg

0

0

3

-----

0

8

Recon Car sees Duke

127

reco_attack gblasr01

256

256

3

-----

7680

8

Recon Car firing at Duke

128

reco_pain pigpn

0

0

3

-----

0

8

Recon car grunts in pain

129

reco_dying pigdy

0

0

3

-----

0

8

Recon Car Dies

130

dron_roam snakrm

0

0

3

-----

0

multi

Drone roaming

131

dron_recog snakrg

0

0

3

-----

0

11.025

Drone sees Duke

132

dron_attack1 snakata

0

0

3

-----

0

11.025

High pitches zzzzz when drone attacks Duke

133

dron_pain snakpn

0

0

3

-----

0

11.025

Drone in Pain

134

dron_dying snakdy

0

0

3

-----

0

11.025

Growl when Drone dies

135

comm_roam commrm

0

0

3

-----

0

11.025

Fat commander roaming

136

comm_recog commrg

0

0

3

-----

0

11.025

Fat Commander sees Duke and says "Die Human"

137

comm_attack commat

0

0

3

-----

0

11.025

Fat Commander attacking and says "Suck it down"

138

comm_pain commpn

0

0

3

-----

0

11.025

Fat Commander in pain

139

comm_dying commdy

0

0

3

-----

0

11.025

Extended screem of commander dying

140

octa_roam octarm

-200

0

3

-----

0

8

Octobrain roaming

141

octa_recog octarg

0

0

3

-----

0

8

Octobrain sees Duke

142

octa_attack1 octaat1

0

0

3

-----

0

8

Octobrain firing at Duke

143

octa_pain octapn

-400

0

3

-----

0

8

Octobrain screaming in pain

144

octa_dying octady

-400

-100

3

-----

0

8

Octobrain dying

145

turr_roam turrrm

0

0

3

-----

0

+


146

turr_recog turrrg

0

0

3

-----

0

+


147

turr_attack turrat

0

0

3

-----

0

+


148

dumpster_move grind

0

0

0

-----

0

11.025

Grinding wheels of dumpster

149

slim_dying slidie03

0

0

3

-----

0

11.025

Green Slime dying

150

bos3_roam b3roam01

0

0

3

-----

0

11.025

Boss 3 roaming

151

bos3_recog b3pain04

0

0

3

-----

0

11.025

Boss 3 sees Duke

152

bos3_attack1 b3atk01

0

0

3

-----

0

+


153

bos3_pain b3rec03g

0

0

3

-----

0

11.025

Boss 3 in pain

154

bos1_attack2 rpgfire

0

0

3

-----

0

+


155

comm_spin commsp

0

0

3

-----

0

11.025

Fat Commander spinning

156

bos1_walk thud

0

0

3

-----

0

multi

Thump as Boss 1 walks

157

dron_attack2 snakatb

0

0

3

-----

0

11.025

Drone attacking

158

thud thud

0

0

0

-----

0

multi

THUD!

159

octa_attack2 octaat2

0

600

3

-----

0

multi

Octobrain attacking with teeth

160

wierdshot_fly octaat1

0

0

3

-----

0

8

Octobrain firing

161

turr_pain turrpn

0

0

3

-----

0

+


162

turr_dying turrdy

0

0

3

-----

0

+


163

slim_roam sliroa02

0

0

3

-----

0

11.025

Green Slime roaming

164

lady_scream fscrm10

-256

0

254

-@---

0

8

Woman screaming when hit

165

door_operate2 opendoor

-256

0

0

-----

0

11.025

Swinging door

166

door_operate3 edoor10

-256

0

0

-----

0

11.025

Sliding door

167

door_operate4 edoor11

-256

0

0

-----

0

11.025

Sliding door

168

borntobewildsnd 2bwild

0

0

254

---$-

0

11.025

Born to be wild music

169

shotgun_cock shotgnck

96

192

3

-----

0

11.025

Shot gun being cocked

170

generic_ambience1 grind

0

0

0

----%

0

11.025

Grinding Sound

171

generic_ambience2 enghum

0

0

0

---$-

0

multi

Engine humming

172

generic_ambience3 lava06

0

0

0

---$-

0

8

Lava

173

generic_ambience4 bubblamb

-256

0

0

---$-

0

multi

Water bubbling

174

generic_ambience5 phonbusy

0

0

0

-----

0

11.025

Phone Engaged

175

generic_ambience6 roam22

0

0

0

---$-

0

multi

Octobrain like sound

176

bos3_attack2 +






177

generic_ambience17 myself3a

0

0

255

--#--

0

8

Duke "Hmmm, don't have time to play with myself"

178

generic_ambience18 monolith

0

0

0

---$-

0

11.025

Wierd alien ambience

179

generic_ambience19 hydro50

0

0

0

---$-

0

11.025

Water ambience

180

generic_ambience20 con03

0

0

0

--#--

0

11.025

Duke "Hmmm, looks like I have the con"

181

generic_ambience21 !prison

0

0

255

--#--

0

multi

Ha Ha Ha, too late Nukem, we're in control now

182

generic_ambience22 vpiss2

0

0

255

--#--

0

+


183

secretlevelsnd secret

0

0

255

-----

0

11.025

Secret Level

184

generic_ambience8 amb81b

0

0

0

---$-

0

8

Far off alien ambience

185

generic_ambience9 roam98b

0

0

0

---$-

0

multi

Muffled voice

186

generic_ambience10 h2orush2

0

0

0

---$%

0

8

Water flowing

187

generic_ambience11 projrun

0

0

0

---$%

0

8

Movie Projector

188

generic_ambience12 blank

0

0

0

-----

0

5.988

A blank .voc file

189

generic_ambience13 pay02

0

0

255

-@#--

0

8

Duke "Damn, those alien bastards are going to pay for shooting up my ride"

190

generic_ambience14 onlyon03

0

0

255

--#--

0

8

Duke "What, there's only one of you?"

191

+







192

generic_ambience15 rides09

0

0

255

--#--

0

8

Duke "I think I'll climb aboard"

193

generic_ambience16 doomed16

0

0

255

--#--

0

multi

Duke "That's one doomed space marine"

194

fire_crackle fire09

0

0

254

---$-

0

multi

Fire crackling

195

bonus_speech1 letsrk03

0

0

255

--#--

0

8

Duke "Let's rock"

196

bonus_speech2 ready2a

0

0

255

--#--

0

8

Duke "Ready for action"

197

bonus_speech3 ripem08

0

0

255

--#--

0

8

Duke "Rip 'ema new one"

198

pig_capture_duke !pig

0

0

255

-@---

0

multi

Got you now, you bastard, and we're gunna fry your arse

199

bonus_speech4 rockin02

0

0

255

--#--

0

8

Duke "Rockin'"

200

duke_land_hurt pain39

0

0

255

--#--

0

8

Duke landing from a height and hurting himself

201

duke_hit_stripper1 damnit04

0

0

255

-@#--

0

8

Duke "Damn it"

202

duke_tip1 dance01

0

0

255

--#--

0

8

Duke "You wanna dance?"

203

duke_killed2 damnit04

0

0

255

-@#--

0

8

Duke "Damn it"

204

pred_roam2 roam58

0

0

3

-----

0

multi

Trooper roaming

205

pig_roam2 roam67

-200

400

3

-----

0

8

Pig Cop roaming

206

duke_getweapon1 cool01

0

0

255

--#--

0

8

Duke "Cool"

207

duke_search2 whrsit05

0

0

255

--#--

0

8

Duke "Whare is it?"

208

duke_crack2 comeon02

0

0

255

--#--

0

8

Duke "Come on"

209

duke_search pain87

0

0

2

--#--

0

8

Umph, Duke pressing on walls

210

duke_get getitm19

-64

64

255

-----

0

8

Beep when Duke picks up an item

211

duke_longterm_pain gasps07

-192

0

255

--#--

0

8

Duke gasping

212

monitor_active monitor

0

0

0

-----

0

8

Monitor beeping when changing camera

213

nitevision_onoff goggle12

0

0

0

-----

0

multi

Turn on or turn off night vision googles

214

duke_hit_stripper2 damn03

0

0

255

-@#--

0

8

Duke "Damn"

215

duke_crack_first knuckle

0

0

3

-----

0

multi

Duke cracking his knuckles

216

duke_usemedkit ahh04

0

0

255

--#--

0

8

Ahhh

217

duke_takepills gulp01

0

0

255

--#--

0

8

Gulp when Duke uses steroids

218

duke_pissrelief ahmuch03

0

0

255

--#--

0

8

Duke "Ahhh, much better"

219

select_weapon wpnsel21

128

128

3

-----

0

8

Changing weapon sound

220

water_gurgle h2ogrgl2

0

0

1

---$-

9000

multi

Water trickling

221

duke_getweapon4 wansom4a

0

0

255

--#--

0

8

Duke "Who wants some?"

222

jibbed_actor1 amess06

0

0

255

--#--

0

8

Duke "What a mess"

223

jibbed_actor2 bitchn04

0

0

255

-@#--

0

8

Duke "Bitchin'"

224

jibbed_actor3 holycw01

0

0

255

--#--

0

8

Duke "Holy Cow"

225

jibbed_actor4 holysh02

0

0

255

-@#--

0

8

Duke "Holy Shit"

226

jibbed_actor5 imgood12

0

0

255

-@#--

0

8

Duke "Damn I'm good"

227

jibbed_actor6 piece02

0

0

255

--#--

0

8

Duke "Piece of cake"

228

jibbed_actor7 gothrt01

0

0

255

--#--

0

8

Duke "Ooow, that's gotta hurt"

229

duke_gothealthatlow needed03

0

0

255

--#--

0

8

Duke "Ooow, I needed that"

230

bosstalktoduke !boss

0

0

255

-----

0

multi

Who the hell are you?

231

war_ambience1 waramb13

-512

0

255

!----

0

5.988

Plane fly past

232

war_ambience2 waramb21

-512

0

254

!----

0

5.988

Plane Crash

233

war_ambience3 waramb23

-512

0

254

!----

0

5.988

Plane fly past

234

war_ambience4 waramb29

-512

0

254

!----

0

5.988

Plane fly and alien scream

235

war_ambience5 force01

0

0

0

--#--

0

11.025

Duke "Now, this is a force to be reackoned with"

236

war_ambience6 quake06

0

0

0

--#--

0

11.025

Duke "I ain't afraid of no Quake"

237

war_ambience7 termin01

0

0

0

--#--

0

11.025

Duke "Terminated"

238

war_ambience8 born01

0

0

254

!--$-

0

11.025

Duke "Born to be wild"

239

war_ambience9 nobody01

0

0

0

--#--

0

11.025

Duke "Nobody steals our chicks, and lives"

240

war_ambience10 chew05

0

0

0

-@#--

0

11.025

Duke "Its time to kick arse and chew bubble gum, and I'm all out of gum"

241

alien_talk1 mustdie

0

0

255

-@#--

0

11.025

Duke Nukem must die

242

alien_talk2 defeated

0

0

255

-@#--

0

11.025

Earth attack force defeated

243

exitmenusound item15

0

0

0

-----

0

8

Exit menus

244

fly_by flyby

-256

256

3

-----

0

multi

Startup sound (at nuke symbol)

245

duke_scream dscrem04

0

0

255

-----

0

8

Duke scream when he falls from a great height

246

shrinker_hit thud

0

0

3

-----

0

multi

Shrinker ray hit wall

247

ratty mice3

0

0

0

-----

0

11.025

Mice squeeking

248

into_menu bulithit

1024

1024

0

-----

0

5.988

Enter menus

249

bonusmusic bonus

0

0

255

----%

0

22.05

Music at end of level screen

250

duke_booby booby04

0

0

255

--#--

0

8

Duke "I should have known that those alien maggots booby trapped the sub"

251

duke_talktobossfall diesob03

0

0

255

-@#--

0

multi

Duke "Die you son of a bitch"

252

duke_lookintomirror lookin01

0

0

255

-@#--

0

8

Duke "Damn, I'm lookin' good"

253

pig_roam3 pigrm

-200

400

3

-----

0

8

Pig Cop roaming

254

killme killme

-128

0

0

-----

0

11.025

Voice saying "Kill me"

255

dron_jetsnd enghum

1300

1300

0

-----

0

multi

Engine humming

256

space_door1 hydro22

0

0

0

-----

8192

11.025

Space door/elevator open/up

257

space_door2 hydro24

0

0

0

-----

0

11.025

Space door/elevator close/down

258

space_door3 hydro27

0

0

0

-----

8192

11.025

Space door/elevator open/up with stop

259

space_door4 hydro34

0

0

0

-----

0

11.025

Space door open/close

260

space_door5 hydro40

0

0

0

-----

0

11.025

Pressure release

261

alien_elevator1 hydro43

0

0

0

-----

0

11.025

Noisy elevator

262

vault_door vault04

0

0

0

-----

0

11.025

Slow moving door

263

jibbed_actor13 letgod01

0

0

255

--#--

0

11.025

Duke "Let God sort 'em out"

264

duke_getweapon6 hail01

0

0

255

--#--

0

11.025

Duke "Hail to the King baby"

265

jibbed_actor8 blowit01

0

0

255

-@#--

0

11.025

Duke "Blow it out your arse"

266

jibbed_actor9 eatsht01

0

0

255

-@#--

0

11.025

Duke "Eat shit and die"

267

jibbed_actor10 face01

0

0

255

-@#--

0

11.025

Duke "Your face, your arse, what's the difference?"

268

jibbed_actor11 inhell01

0

0

255

-@#--

0

11.025

Duke "See you in hell"

269

jibbed_actor12 sukit01

0

0

255

--#--

0

11.025

Duke "Suck it down"

270

duke_killed4 dscrem18

0

0

255

--#--

0

8

Duke strained scream

271

duke_killed5 pisses01

0

0

255

-@#--

0

11.025

Duke "This really pisses me off"

272

alien_switch1 aswtch23

0

0

0

-----

0

11.025

Splat switch

273

duke_steponfeces happen01

0

0

0

-@#--

0

11.025

Duke "Shit happens"

274

duke_longterm_pain2 dscrem15

0

0

255

--#--

0

8

Medium length screem

275

duke_longterm_pain3 dscrem16

0

0

255

--#--

0

11.025

Short screem

276

duke_longterm_pain4 dscrem17

0

0

255

--#--

0

11.025

Even shorter screem

277

companb2 ctrlrm25

0

0

0

---$-

0

11.025

Oscillating alien sound

278

ktit ktitx

0

0

254

---$-

0

8

Duke "This is KTIT, K tit. Bringing you the breast, I mean the best, tunes in town"

279

helicop_idle hlidle03

0

0

255

---$%

0

5.988

Helicopter blades spinning

280

stepnit lizshit3

0

0

254

-@#--

0

11.025

Splat as Duke steps in it

281

space_ambience1 monolith

0

0

0

!----

0

11.025

Wierd alienambience

282

space_ambience2 hydro50

0

0

0

!----

0

11.025

Grinding moving sound

283

slim_hatch slhtch01

0

0

3

-----

0

11.025

Green slime hatching

284

ripheadneck rip01

0

0

254

-@#--

0

11.025

Duke "I'll rip your head off and shit down your neck"

285

foundjones jones04

0

0

0

--#--

0

11.025

Duke "We meet again, Dr Jones"

286

alien_door1 adoor1

0

0

0

-----

0

11.025

Very noisy door

287

alien_door2 adoor2

0

0

0

-----

0

11.025

Splatty door

288

endseqvol3snd4 grabbag

0

0

254

----%

0

11.025

Duke Nukem Title music

289

endseqvol3snd5 name01

0

0

250

-----

0

8

Duke "My name's Duke Nukem"

290

endseqvol3snd6 r&r01

0

0

251

-----

0

8

Duke "After a few days of R & R, I'll be ready for more action"

291

endseqvol3snd7 lani05

0

0

252

-----

0

8

Lani "Ohh, come back to bed Duke"

292

endseqvol3snd8 lani08

0

0

253

-----

0

8

Lani "I'm ready for some action now"

293

endseqvol3snd9 laniduk2

0

0

254

-----

0

8

Lani & Duke make love

294

whipyourass whipyu01

0

0

255

--#--

0

8

Duke "It's down to you and me, you one eyed freak"

295

endseqvol2snd1 gunhit2

0

0

249

-----

0

22.05

Gun hit

296

endseqvol2snd2 headrip3

0

0

250

-----

0

11.025

16bit, Head ripped off

297

endseqvol2snd3 buckle

0

0

251

-----

0

22.05

Unbuckle jeans

298

endseqvol2snd4 jetp2

0

0

252

-----

0

11.05

Throw off jetpack

299

endseqvol2snd5 zipper2

0

0

253

-----

0

11.05

Undo zipper

300

endseqvol2snd6 news

0

0

254

-----

0

11.05

Open newspaper

301

endseqvol2snd7 whistle

0

0

255

-----

0

11.05

16bit, Whistle Duke Nukem theme

302

generic_ambience23 2ride06

0

0

255

--#--

0

8

Freeze ray hit somebody

303

somethingfroze freeze

0

0

3

-----

0

22.05

Duke "Damn, that's the second time those alien bastards shot up my ride"

304

duke_longterm_pain5 pain54

0

0

255

--#--

0

8

Uww

305

duke_longterm_pain6 pain75

0

0

255

--#--

0

8

Ugh

306

duke_longterm_pain7 pain93

0

0

255

--#--

0

8

Oww

307

duke_longterm_pain8 pain68

0

0

255

--#--

0

8

Uuughh

308

wind_repeat wind54

0

0

0

---$%

0

multi

Repeating gust of wind



Top


 


Q & A



Q.  Im trying to run Build, but my screen is all full of junk, and the mouse trails echo all over the screen.  Could it be my video card?


A. This is the number one problem I've been asked from first time users.  You have to copy all of the files from the goodies\build directory of your CD to your main duke3d directory on your hard drive.  Build looks in the current directory for the duke3d.grp file... which contains all of the art, sprites, etc. 




Q. How do I make Sector Effectors?  How do I change their HiTags/LoTags?


A. Sector Effectors are just another sprite, with the Sector Effector tile. All of the neat effects with Build are special sprites.  The tile set is tile numbers 1 through 9.  You've probably seen them a million times, but didn't know what they were for.  A Sector Effector is tile number 1.  To change its hi/lotag in 3d mode, point at the sprite, hold down the ['] key, and hit the [H] or [T] keys for Hitag/Lotag, respectively.  To change the hi/lotag in 2d mode, point at the sprite, hold down [ALT], then hit the [H] or [T] keys for Hitag/Lotag, respectively.


    Q. How do I make a sector inside a sector?


A. When you draw a sector inside another sector, it starts out with white walls (non-   player space.) Press [ALT-S] on the inside sector to change it into valid player space (red walls.)



Q. My subways keep launching rockets at me!  Help!


A. Take parallaxing off of the ceiling, this is the only known total fix.  You can make the rockets not hit you by either "pushing" the SE-6 or SE-14 below the floor by a sizable amount or extend it through the ceiling.  This will cause them to hit a void area, but you'll still hear the explosions.




Q.  I put a sector within another sector then moved it against the wall... now I get really weird HOM when looking at it.


A.  To make a "penisula" sector (ie a bookcase extending from the wall) simply split the existing white wall or insert two vertices along it.  Then draw a new sector into the inner sector using those points as the starting and consequently ending points of your sector.  Build does not like to have sectors moved on top of existing lines or vertices.  This wreaks havoc with the engine.

       



Q.  My framerate has made the game unplayable.  What can I do to improve it?



A.  Try the following to bring your frame rate back to Earth:


Reduce the number of unique sprites within any given area. Too many being loaded causes the engine to slow down when loading.


Dont use groups of sectors to make stairs.  Use slopes instead.  Too many sectors within any viewable area causes the engine when calculating the image Duke sees.


Avoid very large, expansive sectors.  If the engine has to load too many sprites/tiles in any given image, the frame rate drops dramatically.


Cut down on the number of aliens in one area.  Too many actors again will drop the FPS.


Avoid putting in lots of aliens that fire rockets.  RPG really tax the engine.





Q.  I've made my water sector, but I die when I either enter the water or try to exit.  Both sectors are the same size.


A. The SE-7 sprites have to be in the exact same location on both water sectors, and at the same angle.




Q. Okay, my water sectors are identical, the sprites are in the same place, and pointing at the same angle.  I can't enter the water or come out of it.


A. Make sure the ceilings/floors of both above-water and underwater sections don't have any slope to them.  To clear the slope of a ceiling/floor, point at it in 3d mode and hit [/].  Also make sure the SE-7 sprites are placed on the floor.  If you've put an island sector within your above water sector, that must be duplicated on the underwater section.  Take a look at E1L3, the submarine level, and you'll see what I mean.




Q.  I made a sprite with my paint program using the correct Duke palette, and imported it into EditArt.  But when I use the sprite in Build, the "clear" space I had colored like the other masking sprites appears pink.


A.  Load EditArt, find your tile, point at any one of the pixels that represent the color you'd like to make masking, and hit Backspace then [C].  Backspace turns your drawing color to the masking color, and [C] will turn any pixel matching the color of the current pixel (the one you have pointed at) to that drawing color.




Q.  I've made a ceiling parallaxed, with the tile being Big Orbit.  Every time I play the level, and walk into that room, I die.  What's up?


A.  The Big Orbit tile (and Moonsky) is meant to simulate actual space... ie no oxygen.  Duke can't live without oxygen, man!  You can avoid this dilemma by setting the ceiling palette to 3.  Alt-P is the key command in 3d mode to change palettes.




Q.  How do I change the palette of sprites/tiles?


A.  This can be done only in 3d mode.  Point at the sprite or tile and hit [ALT]-[P].




Q.  I'm trying to slope my floor, but it's sloping at the wrong angle.


A.  Build slopes to the first wall of a sector, making it the pivot point.  To change the first wall property, you can either hit [ALT]-[F] in 2d mode when your cursor is over the sector to rotate the first wall over one, or hit [ALT]-[F] in 3d mode when pointing at the wall you wish to make the new pivot point.  Be careful when using that in 3d mode, as you have to be pointing at a wall that is "inside" the sector.  Think of it this way... pretend you're in a vertical cylinder, and you can only see the inner walls. Well, the same applies to the [ALT]-[F] key... you can only point at walls that are inside the sector.




Q.  How do I copy sectors?


A.  Check out my tutorial on copying sectors




Q.  Can I copy sectors between maps?


A.  Yes, you can.  The target map has to exist first, however.  You cannot copy a sector to a totally new map.  To copy between maps, highlight the sector(s) you wish to copy with the right [ALT] key.  Hit [ESC] to bring  up the file menu.  Hit [L] to load in your target map.  The highlighted  sector(s) will appear in the same spot as they were in your source map, so you may have to zoom out to find them.




Q.  How do I make my weapons respawn?


A.  Weapons respawn by themselves when you're playing a DukeMatch game with Respawning enabled. There is no way to have weapons respawn in Solo play. 




Q.  I load up EditArt, but all I get is a blank screen.


A.  Make sure you've done these two things: 


1.  Copy all of the files from the goodies\build  directory off of your CD to your Duke directory 


2.  Extract all of the art files from the .grp file by typing 'kextract duke3d.grp *.art' at the command prompt


If those two don't get you in, try running 'bsetup.exe' at the command prompt and change your video settings to 320x200 Standard VGA.  This only affects the Build/EditArt engine, not your normal Duke games.




Q.  I've made my first map, now how the heck do I play it?


A.        There are two methods for playing user maps:

1.  Type 'duke3d -map mylevel.map' at the command prompt

2.  Run 'setup.exe' at the command prompt to bring you into the Duke setup screen.  From here, you can select user maps.  The command-line option allows you to select difficulty settings as well. 




Q.  I've made a door separating a small room with a larger, taller second room. When I open the door and let it close on my head, the door proceeds to go all the way to the ceiling of the larger room. 


A.    Insert a small sector in between your door and the larger room.  Set its floor and ceiling to the same of your smaller sector, so that the door only has a single height to rise to.




Q.  How do I make a door open via a switch, and only with that switch?


A.   A special sprite, SE-32, will allow you to create a door that opens via an activator.  Check out the Switch Doors tutorial.

 



Q.  I've made a glass wall.  When I play the level, and shoot the glass, the tiles on top get messed up.


A.  Press [O] on the step tile (not the glass) to align it to the ceiling, instead of the floor.  This should fix the problem.  If you still have the problem, you can create a "buffer" sector in front of the glass wall so that the above and below tiles don't show.




Q.  Ive made a Star Trek Door, but the darn thing wont open.  When it tries, the tiles start to stretch, but the doors wont open.

                                       

A.  Make sure the white lines of your inner doors are exactly on the red lines of the tagged sectors.  If you've made two parts to the door, they must meet in the middle so that there's no gap.




Q. How do I change the angle of my camera?


A.  The angle of the camera is set by the shade value of the sprite.  Check out the Camera tutorial for a more thorough discussion.




Q.  Ive made an animated sprite set, but it animates way too fast, or slow.  How do I change the animation speed?


A.  Run EditArt, change to the first tile of your animation set, and press the [A] key. The animation sequence should start animating.  Use the -/+ keys on the keypad to change the speed of the animation.  Once the desired speed is found, hit the [ENTER] key to confirm it.  Change to a different tile using PgUp, and type [Y] when it asks if you want to save the current tile.



Q.  How do I use access cards?  How do I change them to red, or yellow?


A.  The Access Switch (tile #130) is what the Access Cards (sprite #60) are used for.  The palettes must match for the Card/Switch combo.  The default for both is palette 0, or blue.  To change them to yellow, change the palette of both card and switch to 23.  To change them to red, change both to 21.  To change a palette, use [ALT-P] in 3d mode.



Q.  How do I make breakable vents?


A.  Vents (tile #595) and Fans (tile #407) are blocked sprites, centered over a hole in a  wall, and sized to match the opening.  Use [B] in either 3d or 2d mode to make the sprite blocking (shows up purple in 2d mode.)  To fixate your sprite horizontally, use the [R] key on it in 3d mode.



Q.  How do I turn a forcefield on/off with a switch?

A.        Change your switches lotag to a unique switch number.  Change your forcefields wall to that same number.   The easiest way to change a walls lotag is in 3d mode using the ['] [T] keyboard command while pointing at the wall.



Top


Top



Legal Thingy


       Duke Nukem is ©1996 3dRealms Studios.   It's their game, as is all of the Duke stuff.  The intellectual property within this tutorial, however, is mine.  Other contributing authors include Jean-Francois Groleau (jfgrol@ ), and he holds similar copyright to the pages he's created.  3dRealms does not support me, nor any of my tutorials.  They don't support Build© or EditArt©, although they are terribly wonderful people for giving us these powerful tools.  Support them with buying the game, if you have not already. 


If you have any problems or questions with anything in this tutorial, ya gotta ask me (ty@ ), and I'll probably return your mail promptly.  You can choose to support me in my ventures, or just use this tutorial and do kind things with it.  If you are a developer, CD-rom compiler person, or anybody influential in a media-based distribution or storage of Duke-related property, please let me know before using any of the good stuff within this help file. 


   Thanks, and have a great one!


              Ty Matthews   (ty@ )

       



For the latest version of this Help file, check here:


       http://





 

http://www.3drealms.com/